@kya-os/cli 0.1.0-beta.7 → 1.0.0-beta
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/README.md +24 -26
- package/dist/commands/claim.d.ts.map +1 -1
- package/dist/commands/claim.js +29 -29
- package/dist/commands/claim.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +241 -180
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/rotate.d.ts.map +1 -1
- package/dist/commands/rotate.js +63 -52
- package/dist/commands/rotate.js.map +1 -1
- package/dist/components/agent-card.d.ts +14 -0
- package/dist/components/agent-card.d.ts.map +1 -0
- package/dist/components/agent-card.js +170 -0
- package/dist/components/agent-card.js.map +1 -0
- package/dist/components/agent-table.d.ts +20 -0
- package/dist/components/agent-table.d.ts.map +1 -0
- package/dist/components/agent-table.js +201 -0
- package/dist/components/agent-table.js.map +1 -0
- package/dist/components/box.d.ts +14 -0
- package/dist/components/box.d.ts.map +1 -0
- package/dist/components/box.js +222 -0
- package/dist/components/box.js.map +1 -0
- package/dist/components/index.d.ts +16 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +17 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/messages.d.ts +62 -0
- package/dist/components/messages.d.ts.map +1 -0
- package/dist/components/messages.js +146 -0
- package/dist/components/messages.js.map +1 -0
- package/dist/components/types.d.ts +51 -0
- package/dist/components/types.d.ts.map +1 -0
- package/dist/components/types.js +5 -0
- package/dist/components/types.js.map +1 -0
- package/dist/components/welcome.d.ts +34 -0
- package/dist/components/welcome.d.ts.map +1 -0
- package/dist/components/welcome.js +115 -0
- package/dist/components/welcome.js.map +1 -0
- package/dist/effects/cli-integration.js +3 -3
- package/dist/effects/cli-integration.js.map +1 -1
- package/dist/effects/index.d.ts +9 -12
- package/dist/effects/index.d.ts.map +1 -1
- package/dist/effects/index.js +69 -34
- package/dist/effects/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +12 -19
- package/dist/utils/env-manager.d.ts +66 -2
- package/dist/utils/env-manager.d.ts.map +1 -1
- package/dist/utils/env-manager.js +381 -56
- package/dist/utils/env-manager.js.map +1 -1
- package/dist/utils/screen-manager.d.ts +10 -0
- package/dist/utils/screen-manager.d.ts.map +1 -0
- package/dist/utils/screen-manager.js +50 -0
- package/dist/utils/screen-manager.js.map +1 -0
- package/dist/utils/validation.d.ts +92 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +102 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +25 -9
- package/dist/commands/cli-experience-demo-simple.d.ts +0 -14
- package/dist/commands/cli-experience-demo-simple.d.ts.map +0 -1
- package/dist/commands/cli-experience-demo-simple.js +0 -119
- package/dist/commands/cli-experience-demo-simple.js.map +0 -1
- package/dist/commands/cli-experience-demo.d.ts +0 -14
- package/dist/commands/cli-experience-demo.d.ts.map +0 -1
- package/dist/commands/cli-experience-demo.js +0 -172
- package/dist/commands/cli-experience-demo.js.map +0 -1
- package/dist/commands/effects-demo.d.ts +0 -10
- package/dist/commands/effects-demo.d.ts.map +0 -1
- package/dist/commands/effects-demo.js +0 -292
- package/dist/commands/effects-demo.js.map +0 -1
- package/dist/dev.d.ts +0 -7
- package/dist/dev.d.ts.map +0 -1
- package/dist/dev.js +0 -9
- package/dist/dev.js.map +0 -1
- package/dist/effects/__tests__/effects.test.d.ts +0 -5
- package/dist/effects/__tests__/effects.test.d.ts.map +0 -1
- package/dist/effects/__tests__/effects.test.js +0 -206
- package/dist/effects/__tests__/effects.test.js.map +0 -1
- package/dist/effects/implementations/binary-path.d.ts +0 -88
- package/dist/effects/implementations/binary-path.d.ts.map +0 -1
- package/dist/effects/implementations/binary-path.js +0 -296
- package/dist/effects/implementations/binary-path.js.map +0 -1
- package/dist/effects/implementations/test.d.ts +0 -113
- package/dist/effects/implementations/test.d.ts.map +0 -1
- package/dist/effects/implementations/test.js +0 -552
- package/dist/effects/implementations/test.js.map +0 -1
- package/dist/effects/template/effect-template.d.ts +0 -97
- package/dist/effects/template/effect-template.d.ts.map +0 -1
- package/dist/effects/template/effect-template.js +0 -208
- package/dist/effects/template/effect-template.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/commands/rotate.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import chalk from
|
|
2
|
-
import ora from
|
|
3
|
-
import { MCPIdentity } from
|
|
4
|
-
import { EnvManager } from
|
|
5
|
-
import { confirmRotation, showSuccess, showError, showWarning } from
|
|
6
|
-
import {
|
|
7
|
-
import { join } from 'path';
|
|
8
|
-
import { cliEffects, EffectTrigger } from '../effects/cli-integration.js';
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import ora from "ora";
|
|
3
|
+
import { MCPIdentity } from "@kya-os/mcp-i";
|
|
4
|
+
import { EnvManager } from "../utils/env-manager.js";
|
|
5
|
+
import { confirmRotation, showSuccess, showError, showWarning, } from "../utils/prompts.js";
|
|
6
|
+
import { cliEffects, EffectTrigger } from "../effects/cli-integration.js";
|
|
9
7
|
export async function rotate(options) {
|
|
10
|
-
console.log(chalk.cyan(
|
|
8
|
+
console.log(chalk.cyan("\n🔄 Key Rotation\n"));
|
|
11
9
|
// Check for existing identity
|
|
12
10
|
const envManager = new EnvManager();
|
|
13
11
|
const processVars = envManager.getFromProcess();
|
|
@@ -19,97 +17,110 @@ export async function rotate(options) {
|
|
|
19
17
|
if (!options.force) {
|
|
20
18
|
const { confirm, reason } = await confirmRotation();
|
|
21
19
|
if (!confirm) {
|
|
22
|
-
console.log(chalk.gray(
|
|
20
|
+
console.log(chalk.gray("\nRotation cancelled."));
|
|
23
21
|
return;
|
|
24
22
|
}
|
|
25
23
|
options.reason = reason;
|
|
26
24
|
}
|
|
27
|
-
showWarning(
|
|
28
|
-
console.log(
|
|
29
|
-
const spinner = ora(
|
|
25
|
+
showWarning("Key rotation will generate new cryptographic keys.");
|
|
26
|
+
console.log("The old keys will remain valid during a 7-day grace period.\n");
|
|
27
|
+
const spinner = ora("Rotating keys...").start();
|
|
30
28
|
try {
|
|
31
29
|
// Initialize identity from existing configuration
|
|
32
30
|
const identity = await MCPIdentity.init();
|
|
33
31
|
// Check if rotation is available
|
|
34
32
|
const keyHealth = identity.checkKeyHealth();
|
|
35
33
|
if (!keyHealth) {
|
|
36
|
-
spinner.fail(
|
|
37
|
-
console.log(chalk.blue(
|
|
34
|
+
spinner.fail("Key rotation not available (using memory storage)");
|
|
35
|
+
console.log(chalk.blue("ℹ️ Key rotation requires file storage. Serverless environments cannot rotate keys."));
|
|
38
36
|
return;
|
|
39
37
|
}
|
|
40
38
|
// Show current key health
|
|
41
|
-
spinner.info(
|
|
39
|
+
spinner.info("Current key status:");
|
|
42
40
|
console.log(` Age: ${Math.floor(keyHealth.age / (24 * 60 * 60 * 1000))} days`);
|
|
43
41
|
console.log(` Signatures: ${keyHealth.signatureCount.toLocaleString()}`);
|
|
44
|
-
console.log(` Should rotate: ${keyHealth.shouldRotate ? chalk.yellow(
|
|
42
|
+
console.log(` Should rotate: ${keyHealth.shouldRotate ? chalk.yellow("Yes") : chalk.green("No")}`);
|
|
45
43
|
// Show burn effect for old keys
|
|
46
44
|
spinner.stop();
|
|
47
45
|
await cliEffects.showEffect(EffectTrigger.KEY_ROTATION, `🔥 Rotating cryptographic keys...\n\n` +
|
|
48
46
|
`Old Key: ${processVars.MCP_IDENTITY_PUBLIC_KEY?.substring(0, 16)}...\n` +
|
|
49
47
|
`Status: BURNING`);
|
|
50
48
|
// Perform rotation
|
|
51
|
-
spinner.start(
|
|
49
|
+
spinner.start("Contacting registry...");
|
|
52
50
|
const result = await identity.rotateKeys(options.reason);
|
|
53
51
|
if (result.success) {
|
|
54
|
-
spinner.succeed(
|
|
52
|
+
spinner.succeed("Keys rotated successfully!");
|
|
55
53
|
// Show beams effect for new keys
|
|
56
|
-
const newKeysText = `🔐 ${chalk.bold(
|
|
54
|
+
const newKeysText = `🔐 ${chalk.bold("New Keys Generated:")}\n` +
|
|
57
55
|
` Public Key: ${identity.publicKey.substring(0, 32)}...\n` +
|
|
58
56
|
` Grace period ends: ${new Date(result.gracePeriodEnd).toLocaleDateString()}\n` +
|
|
59
57
|
` Old keys remain valid until then`;
|
|
60
|
-
await cliEffects.showCustomEffect(
|
|
58
|
+
await cliEffects.showCustomEffect("beams", newKeysText, {
|
|
61
59
|
config: {
|
|
62
60
|
duration: 3000,
|
|
63
|
-
beamColors: [
|
|
61
|
+
beamColors: ["00ff00", "00ffff", "ffffff"],
|
|
64
62
|
beamCount: 5,
|
|
65
|
-
baseColor:
|
|
66
|
-
}
|
|
63
|
+
baseColor: "404040",
|
|
64
|
+
},
|
|
67
65
|
});
|
|
68
66
|
// Get new identity info
|
|
69
67
|
const newVars = {
|
|
70
68
|
MCP_IDENTITY_DID: identity.did,
|
|
71
69
|
MCP_IDENTITY_PUBLIC_KEY: identity.publicKey,
|
|
72
|
-
MCP_IDENTITY_PRIVATE_KEY: identity.privateKey ||
|
|
73
|
-
MCP_IDENTITY_AGENT_ID: identity.agentId ||
|
|
74
|
-
MCP_IDENTITY_AGENT_SLUG: identity.agentSlug ||
|
|
70
|
+
MCP_IDENTITY_PRIVATE_KEY: identity.privateKey || "",
|
|
71
|
+
MCP_IDENTITY_AGENT_ID: identity.agentId || "",
|
|
72
|
+
MCP_IDENTITY_AGENT_SLUG: identity.agentSlug || "",
|
|
75
73
|
};
|
|
76
74
|
// Update environment files
|
|
77
|
-
console.log(`\n${chalk.bold(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
75
|
+
console.log(`\n${chalk.bold("📄 Updating Environment Files:")}`);
|
|
76
|
+
try {
|
|
77
|
+
const result = await envManager.smartInsertMcpVariables(newVars, {
|
|
78
|
+
force: true,
|
|
79
|
+
});
|
|
80
|
+
if (result.success) {
|
|
81
|
+
const operation = result.operation === "created"
|
|
82
|
+
? "Created"
|
|
83
|
+
: result.operation === "updated"
|
|
84
|
+
? "Updated"
|
|
85
|
+
: "Replaced variables in";
|
|
86
|
+
console.log(` ✓ ${operation} ${chalk.green(result.targetFile)}`);
|
|
87
|
+
// Show warnings if any
|
|
88
|
+
if (result.warnings.length > 0) {
|
|
89
|
+
result.warnings.forEach((warning) => {
|
|
90
|
+
console.log(` ${chalk.yellow("⚠")} ${warning}`);
|
|
91
|
+
});
|
|
87
92
|
}
|
|
88
93
|
}
|
|
94
|
+
else {
|
|
95
|
+
console.log(` ✗ Failed to update environment files: ${result.warnings.join(", ")}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
console.log(` ✗ Failed to update environment files: ${error.message}`);
|
|
89
100
|
}
|
|
90
|
-
showSuccess(
|
|
91
|
-
console.log(`\n${chalk.bold(
|
|
92
|
-
console.log(
|
|
93
|
-
console.log(` ${chalk.cyan(
|
|
94
|
-
console.log(
|
|
95
|
-
console.log(
|
|
96
|
-
console.log(`\n${chalk.yellow(
|
|
101
|
+
showSuccess("Key rotation complete!");
|
|
102
|
+
console.log(`\n${chalk.bold("⚠️ Important Next Steps:")}`);
|
|
103
|
+
console.log("\n1. Update production environment variables:");
|
|
104
|
+
console.log(` ${chalk.cyan("npx kya-os env copy")}`);
|
|
105
|
+
console.log("\n2. Deploy your application with new keys");
|
|
106
|
+
console.log("\n3. Monitor for any authentication issues");
|
|
107
|
+
console.log(`\n${chalk.yellow("Note:")} Both old and new keys will work for 7 days.`);
|
|
97
108
|
}
|
|
98
109
|
else {
|
|
99
|
-
spinner.fail(
|
|
100
|
-
showError(result.error ||
|
|
110
|
+
spinner.fail("Key rotation failed");
|
|
111
|
+
showError(result.error || "Unknown error during rotation");
|
|
101
112
|
}
|
|
102
113
|
}
|
|
103
114
|
catch (error) {
|
|
104
|
-
spinner.fail(
|
|
105
|
-
if (error.message?.includes(
|
|
106
|
-
showError(
|
|
115
|
+
spinner.fail("Key rotation failed");
|
|
116
|
+
if (error.message?.includes("429")) {
|
|
117
|
+
showError("Rate limit exceeded. Please try again later.");
|
|
107
118
|
}
|
|
108
|
-
else if (error.message?.includes(
|
|
109
|
-
showError(
|
|
119
|
+
else if (error.message?.includes("Network")) {
|
|
120
|
+
showError("Network error. Check your internet connection.");
|
|
110
121
|
}
|
|
111
122
|
else {
|
|
112
|
-
showError(error.message ||
|
|
123
|
+
showError(error.message || "Failed to rotate keys");
|
|
113
124
|
}
|
|
114
125
|
}
|
|
115
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rotate.js","sourceRoot":"","sources":["../../src/commands/rotate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"rotate.js","sourceRoot":"","sources":["../../src/commands/rotate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Card Component
|
|
3
|
+
* Displays agent identity information in a beautiful card format
|
|
4
|
+
*/
|
|
5
|
+
import { AgentData } from "./types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Create an agent identity card
|
|
8
|
+
*/
|
|
9
|
+
export declare function createAgentCard(data: AgentData): string;
|
|
10
|
+
/**
|
|
11
|
+
* Create a compact agent card (without private key)
|
|
12
|
+
*/
|
|
13
|
+
export declare function createCompactAgentCard(data: AgentData): string;
|
|
14
|
+
//# sourceMappingURL=agent-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../../src/components/agent-card.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAoJvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAuB9D"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Card Component
|
|
3
|
+
* Displays agent identity information in a beautiful card format
|
|
4
|
+
*/
|
|
5
|
+
import chalk from "chalk";
|
|
6
|
+
import { createBox } from "./box.js";
|
|
7
|
+
/**
|
|
8
|
+
* Create an agent identity card
|
|
9
|
+
*/
|
|
10
|
+
export function createAgentCard(data) {
|
|
11
|
+
const lines = [];
|
|
12
|
+
const width = 72;
|
|
13
|
+
// Header
|
|
14
|
+
lines.push(chalk.cyan("╔" + "═".repeat(width - 2) + "╗"));
|
|
15
|
+
lines.push(chalk.cyan("║") +
|
|
16
|
+
chalk.bold.white(centerText("🤖 AGENT IDENTITY CREATED", width - 2)) +
|
|
17
|
+
chalk.cyan("║"));
|
|
18
|
+
lines.push(chalk.cyan("╠" + "═".repeat(width - 2) + "╣"));
|
|
19
|
+
lines.push(chalk.cyan("║" + " ".repeat(width - 2) + "║"));
|
|
20
|
+
// Agent Name
|
|
21
|
+
lines.push(chalk.cyan("║") +
|
|
22
|
+
" " +
|
|
23
|
+
chalk.bold("Agent Name: ") +
|
|
24
|
+
chalk.yellow(data.name.padEnd(width - 16)) +
|
|
25
|
+
chalk.cyan("║"));
|
|
26
|
+
// Description
|
|
27
|
+
if (data.description) {
|
|
28
|
+
const descLines = wrapText(data.description, width - 18);
|
|
29
|
+
lines.push(chalk.cyan("║") +
|
|
30
|
+
" " +
|
|
31
|
+
chalk.bold("Description: ") +
|
|
32
|
+
chalk.gray(descLines[0].padEnd(width - 17)) +
|
|
33
|
+
chalk.cyan("║"));
|
|
34
|
+
for (let i = 1; i < descLines.length; i++) {
|
|
35
|
+
lines.push(chalk.cyan("║") +
|
|
36
|
+
" " +
|
|
37
|
+
chalk.gray(descLines[i].padEnd(width - 18)) +
|
|
38
|
+
chalk.cyan("║"));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
lines.push(chalk.cyan("║" + " ".repeat(width - 2) + "║"));
|
|
42
|
+
// DID
|
|
43
|
+
const didLines = wrapText(data.did, width - 10);
|
|
44
|
+
lines.push(chalk.cyan("║") +
|
|
45
|
+
" " +
|
|
46
|
+
chalk.bold("DID: ") +
|
|
47
|
+
chalk.green(didLines[0].padEnd(width - 9)) +
|
|
48
|
+
chalk.cyan("║"));
|
|
49
|
+
for (let i = 1; i < didLines.length; i++) {
|
|
50
|
+
lines.push(chalk.cyan("║") +
|
|
51
|
+
" " +
|
|
52
|
+
chalk.green(didLines[i].padEnd(width - 10)) +
|
|
53
|
+
chalk.cyan("║"));
|
|
54
|
+
}
|
|
55
|
+
lines.push(chalk.cyan("║" + " ".repeat(width - 2) + "║"));
|
|
56
|
+
// Profile URL
|
|
57
|
+
if (data.profileUrl || data.agentSlug) {
|
|
58
|
+
const profileUrl = data.profileUrl || `https://knowthat.ai/agents/${data.agentSlug}`;
|
|
59
|
+
lines.push(chalk.cyan("║") +
|
|
60
|
+
" " +
|
|
61
|
+
chalk.bold("Profile: ") +
|
|
62
|
+
chalk.blue(profileUrl.padEnd(width - 13)) +
|
|
63
|
+
chalk.cyan("║"));
|
|
64
|
+
lines.push(chalk.cyan("║" + " ".repeat(width - 2) + "║"));
|
|
65
|
+
}
|
|
66
|
+
// Private Key Section (if provided)
|
|
67
|
+
if (data.privateKey) {
|
|
68
|
+
lines.push(chalk.cyan("║") +
|
|
69
|
+
chalk.bold.red(" 🔐 PRIVATE KEY (KEEP SAFE!): ".padEnd(width - 2)) +
|
|
70
|
+
chalk.cyan("║"));
|
|
71
|
+
const keyLines = wrapText(data.privateKey, width - 10);
|
|
72
|
+
for (const keyLine of keyLines) {
|
|
73
|
+
lines.push(chalk.cyan("║") +
|
|
74
|
+
" " +
|
|
75
|
+
chalk.red(keyLine.padEnd(width - 7)) +
|
|
76
|
+
chalk.cyan("║"));
|
|
77
|
+
}
|
|
78
|
+
lines.push(chalk.cyan("║") +
|
|
79
|
+
chalk.yellow(" ⚠️ This key controls your agent - never share it!".padEnd(width - 2)) +
|
|
80
|
+
chalk.cyan("║"));
|
|
81
|
+
lines.push(chalk.cyan("║" + " ".repeat(width - 2) + "║"));
|
|
82
|
+
}
|
|
83
|
+
// Claim URL Section (if provided)
|
|
84
|
+
if (data.claimUrl) {
|
|
85
|
+
lines.push(chalk.cyan("╠" + "═".repeat(width - 2) + "╣"));
|
|
86
|
+
lines.push(chalk.cyan("║" + " ".repeat(width - 2) + "║"));
|
|
87
|
+
lines.push(chalk.cyan("║") +
|
|
88
|
+
chalk.bold.yellow(" 🎯 CLAIM YOUR AGENT NOW:".padEnd(width - 2)) +
|
|
89
|
+
chalk.cyan("║"));
|
|
90
|
+
lines.push(chalk.cyan("║" + " ".repeat(width - 2) + "║"));
|
|
91
|
+
lines.push(chalk.cyan("╚" + "═".repeat(width - 2) + "╝"));
|
|
92
|
+
lines.push("");
|
|
93
|
+
lines.push(chalk.bold.cyan("🔗 Click to claim your agent:"));
|
|
94
|
+
lines.push(chalk.cyan.underline(data.claimUrl));
|
|
95
|
+
lines.push("");
|
|
96
|
+
lines.push(chalk.cyan("╔" + "═".repeat(width - 2) + "╗"));
|
|
97
|
+
lines.push(chalk.cyan("║" + " ".repeat(width - 2) + "║"));
|
|
98
|
+
lines.push(chalk.cyan("║") +
|
|
99
|
+
chalk.gray(" This link lets you manage your agent and add capabilities.".padEnd(width - 2)) +
|
|
100
|
+
chalk.cyan("║"));
|
|
101
|
+
lines.push(chalk.cyan("║" + " ".repeat(width - 2) + "║"));
|
|
102
|
+
}
|
|
103
|
+
// Footer
|
|
104
|
+
lines.push(chalk.cyan("╠" + "═".repeat(width - 2) + "╣"));
|
|
105
|
+
lines.push(chalk.cyan("║" + " ".repeat(width - 2) + "║"));
|
|
106
|
+
lines.push(chalk.cyan("║") +
|
|
107
|
+
chalk.bold.green(" ✅ Agent successfully registered on the KYA-OS network".padEnd(width - 2)) +
|
|
108
|
+
chalk.cyan("║"));
|
|
109
|
+
lines.push(chalk.cyan("║") +
|
|
110
|
+
chalk.gray(" Your AI agent now has a verifiable decentralized identity".padEnd(width - 2)) +
|
|
111
|
+
chalk.cyan("║"));
|
|
112
|
+
lines.push(chalk.cyan("║" + " ".repeat(width - 2) + "║"));
|
|
113
|
+
lines.push(chalk.cyan("╚" + "═".repeat(width - 2) + "╝"));
|
|
114
|
+
return lines.join("\n");
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Create a compact agent card (without private key)
|
|
118
|
+
*/
|
|
119
|
+
export function createCompactAgentCard(data) {
|
|
120
|
+
const content = [];
|
|
121
|
+
content.push(chalk.bold("Agent Name: ") + chalk.yellow(data.name));
|
|
122
|
+
if (data.description) {
|
|
123
|
+
content.push(chalk.bold("Description: ") + chalk.gray(data.description));
|
|
124
|
+
}
|
|
125
|
+
content.push("");
|
|
126
|
+
content.push(chalk.bold("DID: ") + chalk.green(data.did));
|
|
127
|
+
if (data.profileUrl || data.agentSlug) {
|
|
128
|
+
const profileUrl = data.profileUrl || `https://knowthat.ai/agents/${data.agentSlug}`;
|
|
129
|
+
content.push(chalk.bold("Profile: ") + chalk.blue(profileUrl));
|
|
130
|
+
}
|
|
131
|
+
return createBox(content, {
|
|
132
|
+
title: "🤖 Agent Identity",
|
|
133
|
+
style: "round",
|
|
134
|
+
padding: 2,
|
|
135
|
+
borderColor: "00ff00",
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
// Helper functions
|
|
139
|
+
function stripAnsi(text) {
|
|
140
|
+
// Simple ANSI code removal - matches most common ANSI escape sequences
|
|
141
|
+
return text.replace(/\x1b\[[0-9;]*m/g, '');
|
|
142
|
+
}
|
|
143
|
+
function centerText(text, width) {
|
|
144
|
+
const textLength = stripAnsi(text).length;
|
|
145
|
+
if (textLength >= width)
|
|
146
|
+
return text;
|
|
147
|
+
const totalPadding = width - textLength;
|
|
148
|
+
const leftPadding = Math.floor(totalPadding / 2);
|
|
149
|
+
const rightPadding = totalPadding - leftPadding;
|
|
150
|
+
return " ".repeat(leftPadding) + text + " ".repeat(rightPadding);
|
|
151
|
+
}
|
|
152
|
+
function wrapText(text, width) {
|
|
153
|
+
const words = text.split(" ");
|
|
154
|
+
const lines = [];
|
|
155
|
+
let currentLine = "";
|
|
156
|
+
for (const word of words) {
|
|
157
|
+
if (currentLine.length + word.length + 1 <= width) {
|
|
158
|
+
currentLine += (currentLine ? " " : "") + word;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
if (currentLine)
|
|
162
|
+
lines.push(currentLine);
|
|
163
|
+
currentLine = word;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (currentLine)
|
|
167
|
+
lines.push(currentLine);
|
|
168
|
+
return lines.length > 0 ? lines : [""];
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=agent-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-card.js","sourceRoot":"","sources":["../../src/components/agent-card.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Table Component
|
|
3
|
+
* Displays agent identity information using cli-table3 for better presentation
|
|
4
|
+
*/
|
|
5
|
+
import { AgentData } from "./types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Create an agent identity table
|
|
8
|
+
*/
|
|
9
|
+
export declare function createAgentTable(data: AgentData): string;
|
|
10
|
+
/**
|
|
11
|
+
* Create a compact agent info table (for check command)
|
|
12
|
+
*/
|
|
13
|
+
export declare function createCompactAgentTable(data: AgentData): string;
|
|
14
|
+
/**
|
|
15
|
+
* Create claim URL table with interactive prompt
|
|
16
|
+
*/
|
|
17
|
+
export declare function createClaimTable(data: {
|
|
18
|
+
claimUrl: string;
|
|
19
|
+
}): string;
|
|
20
|
+
//# sourceMappingURL=agent-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-table.d.ts","sourceRoot":"","sources":["../../src/components/agent-table.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CA4GxD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAsC/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CA4DnE"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Table Component
|
|
3
|
+
* Displays agent identity information using cli-table3 for better presentation
|
|
4
|
+
*/
|
|
5
|
+
import Table from "cli-table3";
|
|
6
|
+
import chalk from "chalk";
|
|
7
|
+
/**
|
|
8
|
+
* Create an agent identity table
|
|
9
|
+
*/
|
|
10
|
+
export function createAgentTable(data) {
|
|
11
|
+
// Create table with custom styling
|
|
12
|
+
const table = new Table({
|
|
13
|
+
head: [],
|
|
14
|
+
style: {
|
|
15
|
+
head: [],
|
|
16
|
+
border: ['cyan'],
|
|
17
|
+
'padding-left': 2,
|
|
18
|
+
'padding-right': 2
|
|
19
|
+
},
|
|
20
|
+
chars: {
|
|
21
|
+
'top': '═',
|
|
22
|
+
'top-mid': '╤',
|
|
23
|
+
'top-left': '╔',
|
|
24
|
+
'top-right': '╗',
|
|
25
|
+
'bottom': '═',
|
|
26
|
+
'bottom-mid': '╧',
|
|
27
|
+
'bottom-left': '╚',
|
|
28
|
+
'bottom-right': '╝',
|
|
29
|
+
'left': '║',
|
|
30
|
+
'left-mid': '╟',
|
|
31
|
+
'mid': '─',
|
|
32
|
+
'mid-mid': '┼',
|
|
33
|
+
'right': '║',
|
|
34
|
+
'right-mid': '╢',
|
|
35
|
+
'middle': '│'
|
|
36
|
+
},
|
|
37
|
+
colWidths: [20, 60],
|
|
38
|
+
wordWrap: true
|
|
39
|
+
});
|
|
40
|
+
// Add title row
|
|
41
|
+
table.push([
|
|
42
|
+
{
|
|
43
|
+
colSpan: 2,
|
|
44
|
+
content: chalk.bold.white('🤖 AGENT IDENTITY CREATED'),
|
|
45
|
+
hAlign: 'center'
|
|
46
|
+
}
|
|
47
|
+
]);
|
|
48
|
+
// Add agent details
|
|
49
|
+
table.push([chalk.bold('Agent Name'), chalk.yellow(data.name)], [chalk.bold('Description'), chalk.gray(data.description || 'N/A')]);
|
|
50
|
+
// Add separator
|
|
51
|
+
table.push([{ colSpan: 2, content: '' }]);
|
|
52
|
+
// Add DID with proper wrapping
|
|
53
|
+
table.push([
|
|
54
|
+
chalk.bold('DID'),
|
|
55
|
+
chalk.green(data.did)
|
|
56
|
+
]);
|
|
57
|
+
// Add profile URL if available
|
|
58
|
+
if (data.profileUrl || data.agentSlug) {
|
|
59
|
+
const profileUrl = data.profileUrl || `https://knowthat.ai/agents/${data.agentSlug}`;
|
|
60
|
+
table.push([
|
|
61
|
+
chalk.bold('Profile'),
|
|
62
|
+
chalk.blue(profileUrl)
|
|
63
|
+
]);
|
|
64
|
+
}
|
|
65
|
+
// If private key is provided, add it with warning
|
|
66
|
+
if (data.privateKey) {
|
|
67
|
+
table.push([{ colSpan: 2, content: '' }]);
|
|
68
|
+
table.push([
|
|
69
|
+
{
|
|
70
|
+
colSpan: 2,
|
|
71
|
+
content: chalk.bold.red('🔐 PRIVATE KEY (KEEP SAFE!)'),
|
|
72
|
+
hAlign: 'center'
|
|
73
|
+
}
|
|
74
|
+
]);
|
|
75
|
+
table.push([
|
|
76
|
+
{
|
|
77
|
+
colSpan: 2,
|
|
78
|
+
content: chalk.red(data.privateKey),
|
|
79
|
+
hAlign: 'left'
|
|
80
|
+
}
|
|
81
|
+
]);
|
|
82
|
+
table.push([
|
|
83
|
+
{
|
|
84
|
+
colSpan: 2,
|
|
85
|
+
content: chalk.yellow('⚠️ This key controls your agent - never share it!'),
|
|
86
|
+
hAlign: 'center'
|
|
87
|
+
}
|
|
88
|
+
]);
|
|
89
|
+
}
|
|
90
|
+
// Add success message
|
|
91
|
+
table.push([{ colSpan: 2, content: '' }]);
|
|
92
|
+
table.push([
|
|
93
|
+
{
|
|
94
|
+
colSpan: 2,
|
|
95
|
+
content: chalk.bold.green('✅ Agent successfully registered on the KYA-OS network'),
|
|
96
|
+
hAlign: 'center'
|
|
97
|
+
}
|
|
98
|
+
]);
|
|
99
|
+
table.push([
|
|
100
|
+
{
|
|
101
|
+
colSpan: 2,
|
|
102
|
+
content: chalk.gray('Your AI agent now has a verifiable decentralized identity'),
|
|
103
|
+
hAlign: 'center'
|
|
104
|
+
}
|
|
105
|
+
]);
|
|
106
|
+
return table.toString();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Create a compact agent info table (for check command)
|
|
110
|
+
*/
|
|
111
|
+
export function createCompactAgentTable(data) {
|
|
112
|
+
const table = new Table({
|
|
113
|
+
style: {
|
|
114
|
+
head: [],
|
|
115
|
+
border: ['green']
|
|
116
|
+
},
|
|
117
|
+
chars: {
|
|
118
|
+
'top': '─',
|
|
119
|
+
'top-mid': '┬',
|
|
120
|
+
'top-left': '╭',
|
|
121
|
+
'top-right': '╮',
|
|
122
|
+
'bottom': '─',
|
|
123
|
+
'bottom-mid': '┴',
|
|
124
|
+
'bottom-left': '╰',
|
|
125
|
+
'bottom-right': '╯',
|
|
126
|
+
'left': '│',
|
|
127
|
+
'left-mid': '├',
|
|
128
|
+
'mid': '─',
|
|
129
|
+
'mid-mid': '┼',
|
|
130
|
+
'right': '│',
|
|
131
|
+
'right-mid': '┤',
|
|
132
|
+
'middle': '│'
|
|
133
|
+
},
|
|
134
|
+
colWidths: [15, 50],
|
|
135
|
+
wordWrap: true
|
|
136
|
+
});
|
|
137
|
+
table.push([chalk.bold('Agent'), chalk.yellow(data.name)], [chalk.bold('DID'), chalk.green(data.did)]);
|
|
138
|
+
if (data.profileUrl || data.agentSlug) {
|
|
139
|
+
const profileUrl = data.profileUrl || `https://knowthat.ai/agents/${data.agentSlug}`;
|
|
140
|
+
table.push([chalk.bold('Profile'), chalk.blue(profileUrl)]);
|
|
141
|
+
}
|
|
142
|
+
return table.toString();
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Create claim URL table with interactive prompt
|
|
146
|
+
*/
|
|
147
|
+
export function createClaimTable(data) {
|
|
148
|
+
const table = new Table({
|
|
149
|
+
style: {
|
|
150
|
+
head: [],
|
|
151
|
+
border: ['yellow']
|
|
152
|
+
},
|
|
153
|
+
chars: {
|
|
154
|
+
'top': '═',
|
|
155
|
+
'top-mid': '╤',
|
|
156
|
+
'top-left': '╔',
|
|
157
|
+
'top-right': '╗',
|
|
158
|
+
'bottom': '═',
|
|
159
|
+
'bottom-mid': '╧',
|
|
160
|
+
'bottom-left': '╚',
|
|
161
|
+
'bottom-right': '╝',
|
|
162
|
+
'left': '║',
|
|
163
|
+
'left-mid': '╟',
|
|
164
|
+
'mid': '─',
|
|
165
|
+
'mid-mid': '┼',
|
|
166
|
+
'right': '║',
|
|
167
|
+
'right-mid': '╢',
|
|
168
|
+
'middle': '│'
|
|
169
|
+
},
|
|
170
|
+
colWidths: [70],
|
|
171
|
+
wordWrap: true
|
|
172
|
+
});
|
|
173
|
+
table.push([
|
|
174
|
+
{
|
|
175
|
+
content: chalk.bold.yellow('🎯 CLAIM YOUR AGENT NOW'),
|
|
176
|
+
hAlign: 'center'
|
|
177
|
+
}
|
|
178
|
+
]);
|
|
179
|
+
table.push([{ content: '' }]);
|
|
180
|
+
table.push([
|
|
181
|
+
{
|
|
182
|
+
content: chalk.bold.cyan('🔗 Click to claim your agent:'),
|
|
183
|
+
hAlign: 'center'
|
|
184
|
+
}
|
|
185
|
+
]);
|
|
186
|
+
table.push([
|
|
187
|
+
{
|
|
188
|
+
content: chalk.cyan.underline(data.claimUrl),
|
|
189
|
+
hAlign: 'center'
|
|
190
|
+
}
|
|
191
|
+
]);
|
|
192
|
+
table.push([{ content: '' }]);
|
|
193
|
+
table.push([
|
|
194
|
+
{
|
|
195
|
+
content: chalk.gray('This link lets you manage your agent and add capabilities.'),
|
|
196
|
+
hAlign: 'center'
|
|
197
|
+
}
|
|
198
|
+
]);
|
|
199
|
+
return table.toString();
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=agent-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-table.js","sourceRoot":"","sources":["../../src/components/agent-table.ts"],"names":[],"mappings":"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"}
|