@kya-os/cli 1.0.0 ā 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/build.d.ts +5 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +173 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +9 -31
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/claim.d.ts +7 -1
- package/dist/commands/claim.d.ts.map +1 -1
- package/dist/commands/claim.js +196 -44
- package/dist/commands/claim.js.map +1 -1
- package/dist/commands/demo.d.ts +10 -0
- package/dist/commands/demo.d.ts.map +1 -0
- package/dist/commands/demo.js +584 -0
- package/dist/commands/demo.js.map +1 -0
- package/dist/commands/dev.d.ts +5 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +111 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/doctor.d.ts +11 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +530 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/env.d.ts +1 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +113 -15
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/identity.d.ts +14 -0
- package/dist/commands/identity.d.ts.map +1 -0
- package/dist/commands/identity.js +204 -0
- package/dist/commands/identity.js.map +1 -0
- package/dist/commands/init.d.ts +6 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +86 -670
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/receipts.d.ts +11 -0
- package/dist/commands/receipts.d.ts.map +1 -0
- package/dist/commands/receipts.js +179 -0
- package/dist/commands/receipts.js.map +1 -0
- package/dist/commands/register.d.ts +15 -0
- package/dist/commands/register.d.ts.map +1 -0
- package/dist/commands/register.js +220 -0
- package/dist/commands/register.js.map +1 -0
- package/dist/commands/rotate.d.ts +7 -1
- package/dist/commands/rotate.d.ts.map +1 -1
- package/dist/commands/rotate.js +149 -109
- package/dist/commands/rotate.js.map +1 -1
- package/dist/commands/start.d.ts +5 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +129 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +9 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +177 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/verify.d.ts +22 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +491 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/components/claim-experience.d.ts +21 -0
- package/dist/components/claim-experience.d.ts.map +1 -0
- package/dist/components/claim-experience.js +138 -0
- package/dist/components/claim-experience.js.map +1 -0
- package/dist/index.js +154 -19
- package/dist/utils/env-manager.d.ts +6 -7
- package/dist/utils/env-manager.d.ts.map +1 -1
- package/dist/utils/env-manager.js +52 -40
- package/dist/utils/env-manager.js.map +1 -1
- package/dist/utils/identity-manager.d.ts +41 -0
- package/dist/utils/identity-manager.d.ts.map +1 -0
- package/dist/utils/identity-manager.js +159 -0
- package/dist/utils/identity-manager.js.map +1 -0
- package/dist/utils/kta-api.d.ts +67 -0
- package/dist/utils/kta-api.d.ts.map +1 -0
- package/dist/utils/kta-api.js +137 -0
- package/dist/utils/kta-api.js.map +1 -0
- package/package.json +8 -6
- package/dist/utils/validation.d.ts +0 -101
- package/dist/utils/validation.d.ts.map +0 -1
- package/dist/utils/validation.js +0 -109
- package/dist/utils/validation.js.map +0 -1
package/dist/commands/rotate.js
CHANGED
|
@@ -1,127 +1,167 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import ora from "ora";
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
// Confirm rotation
|
|
17
|
-
if (!options.force) {
|
|
18
|
-
const { confirm, reason } = await confirmRotation();
|
|
19
|
-
if (!confirm) {
|
|
20
|
-
console.log(chalk.gray("\nRotation cancelled."));
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
options.reason = reason;
|
|
24
|
-
}
|
|
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();
|
|
3
|
+
import inquirer from "inquirer";
|
|
4
|
+
import { showSuccess, showError, showInfo } from "../utils/prompts.js";
|
|
5
|
+
import { hasDelegation, isKTAAvailable } from "../utils/kta-api.js";
|
|
6
|
+
import { loadCurrentIdentity, archiveOldKey, generateNewIdentity, saveIdentityToDev, generateAuditLine, } from "../utils/identity-manager.js";
|
|
7
|
+
import contractsCli from "@kya-os/contracts/cli";
|
|
8
|
+
const { CLI_EXIT_CODES } = contractsCli;
|
|
9
|
+
/**
|
|
10
|
+
* Rotate identity keys with dev/prod mode handling
|
|
11
|
+
* Requirements: 2.3, 2.4, 2.5, 2.6
|
|
12
|
+
*/
|
|
13
|
+
export async function rotate(options = {}) {
|
|
14
|
+
console.log(chalk.cyan("\nš Rotating Identity Keys\n"));
|
|
15
|
+
const { force = false, reason, newDid = false, yes = false } = options;
|
|
28
16
|
try {
|
|
29
|
-
//
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (
|
|
34
|
-
|
|
35
|
-
console.log(chalk.blue("ā¹ļø Key rotation requires file storage. Serverless environments cannot rotate keys."));
|
|
36
|
-
return;
|
|
17
|
+
// Determine environment
|
|
18
|
+
const isDev = !process.env.AGENT_PRIVATE_KEY;
|
|
19
|
+
const mode = isDev ? "dev" : "prod";
|
|
20
|
+
console.log(`${chalk.bold("Environment:")} ${chalk.gray(mode)}`);
|
|
21
|
+
if (reason) {
|
|
22
|
+
console.log(`${chalk.bold("Reason:")} ${chalk.gray(reason)}`);
|
|
37
23
|
}
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const newVars = {
|
|
68
|
-
MCP_IDENTITY_AGENT_DID: identity.did,
|
|
69
|
-
MCP_IDENTITY_AGENT_PUBLIC_KEY: identity.publicKey,
|
|
70
|
-
MCP_IDENTITY_AGENT_PRIVATE_KEY: identity.privateKey || "",
|
|
71
|
-
MCP_IDENTITY_AGENT_ID: identity.agentId || "",
|
|
72
|
-
MCP_IDENTITY_AGENT_SLUG: identity.agentSlug || "",
|
|
73
|
-
};
|
|
74
|
-
// Update environment files
|
|
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
|
-
});
|
|
24
|
+
// Load current identity
|
|
25
|
+
const currentIdentity = loadCurrentIdentity();
|
|
26
|
+
if (!currentIdentity) {
|
|
27
|
+
showError("No current identity found. Run 'mcpi init' first.");
|
|
28
|
+
process.exit(CLI_EXIT_CODES.NOIDENTITY);
|
|
29
|
+
}
|
|
30
|
+
console.log(`\n${chalk.bold("Current Identity:")}`);
|
|
31
|
+
console.log(` DID: ${chalk.gray(currentIdentity.did)}`);
|
|
32
|
+
console.log(` Key ID: ${chalk.gray(currentIdentity.keyId)}`);
|
|
33
|
+
// Production mode validation
|
|
34
|
+
if (!isDev) {
|
|
35
|
+
console.log(`\n${chalk.bold("š Production Mode Detected")}`);
|
|
36
|
+
if (!force) {
|
|
37
|
+
// Check delegation via KTA lookup by DID/KID (Requirement 2.4)
|
|
38
|
+
const spinner = ora("Checking delegation status via KTA...").start();
|
|
39
|
+
try {
|
|
40
|
+
const ktaAvailable = await isKTAAvailable();
|
|
41
|
+
if (!ktaAvailable) {
|
|
42
|
+
spinner.fail("KTA is not reachable");
|
|
43
|
+
showError("Cannot verify delegation status - KTA is unavailable");
|
|
44
|
+
console.log(`\n${chalk.gray("To proceed:")}`);
|
|
45
|
+
console.log(`${chalk.gray("⢠Check your internet connection")}`);
|
|
46
|
+
console.log(`${chalk.gray("⢠Verify KTA service status")}`);
|
|
47
|
+
console.log(`${chalk.gray("⢠Or use --force with --yes for emergency rotation")}`);
|
|
48
|
+
process.exit(CLI_EXIT_CODES.CONFIG);
|
|
49
|
+
}
|
|
50
|
+
const delegationExists = await hasDelegation(currentIdentity.did, currentIdentity.keyId);
|
|
51
|
+
if (delegationExists) {
|
|
52
|
+
spinner.succeed("Delegation verified via KTA");
|
|
92
53
|
}
|
|
54
|
+
else {
|
|
55
|
+
spinner.fail("No delegation found for current key");
|
|
56
|
+
showError("Key rotation requires delegation to new key ID or --force flag");
|
|
57
|
+
console.log(`\n${chalk.gray("To proceed:")}`);
|
|
58
|
+
console.log(`${chalk.gray("⢠Set up delegation via KTA for the new key")}`);
|
|
59
|
+
console.log(`${chalk.gray("⢠Or use --force with --yes for emergency rotation")}`);
|
|
60
|
+
process.exit(CLI_EXIT_CODES.CONFIG);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
spinner.fail("Failed to check delegation");
|
|
65
|
+
showError(`Delegation check failed: ${error}`);
|
|
66
|
+
console.log(`\n${chalk.gray("To proceed:")}`);
|
|
67
|
+
console.log(`${chalk.gray("⢠Check your KYA_VOUCHED_API_KEY environment variable")}`);
|
|
68
|
+
console.log(`${chalk.gray("⢠Verify your network connection")}`);
|
|
69
|
+
console.log(`${chalk.gray("⢠Or use --force with --yes for emergency rotation")}`);
|
|
70
|
+
process.exit(CLI_EXIT_CODES.CONFIG);
|
|
93
71
|
}
|
|
94
|
-
|
|
95
|
-
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// Force mode requires confirmation (Requirement 2.5)
|
|
75
|
+
if (!yes) {
|
|
76
|
+
console.log(`\n${chalk.red("ā ļø FORCE ROTATION WARNING")}`);
|
|
77
|
+
console.log(`${chalk.gray("This will rotate keys without delegation check.")}`);
|
|
78
|
+
console.log(`${chalk.gray("Current DID:")} ${chalk.yellow(currentIdentity.did)}`);
|
|
79
|
+
console.log(`${chalk.gray("Current Key ID:")} ${chalk.yellow(currentIdentity.keyId)}`);
|
|
80
|
+
const { confirmed } = await inquirer.prompt([
|
|
81
|
+
{
|
|
82
|
+
type: "confirm",
|
|
83
|
+
name: "confirmed",
|
|
84
|
+
message: "Are you sure you want to force rotate keys?",
|
|
85
|
+
default: false,
|
|
86
|
+
},
|
|
87
|
+
]);
|
|
88
|
+
if (!confirmed) {
|
|
89
|
+
console.log(chalk.yellow("Key rotation cancelled."));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
96
92
|
}
|
|
97
93
|
}
|
|
94
|
+
}
|
|
95
|
+
// Development mode - archive old key (Requirement 2.3)
|
|
96
|
+
let archiveFile;
|
|
97
|
+
if (isDev) {
|
|
98
|
+
const spinner = ora("Archiving old key...").start();
|
|
99
|
+
try {
|
|
100
|
+
archiveFile = archiveOldKey(currentIdentity, reason);
|
|
101
|
+
spinner.succeed(`Old key archived to: ${archiveFile}`);
|
|
102
|
+
}
|
|
98
103
|
catch (error) {
|
|
99
|
-
|
|
104
|
+
spinner.fail("Failed to archive old key");
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Generate new keys
|
|
109
|
+
const spinner = ora("Generating new keys...").start();
|
|
110
|
+
try {
|
|
111
|
+
// Generate new identity (keeping same DID unless --new-did)
|
|
112
|
+
const preserveDID = newDid ? undefined : currentIdentity.did;
|
|
113
|
+
const newIdentity = generateNewIdentity(preserveDID);
|
|
114
|
+
// Save new identity in development mode
|
|
115
|
+
if (isDev) {
|
|
116
|
+
saveIdentityToDev(newIdentity);
|
|
117
|
+
}
|
|
118
|
+
spinner.succeed("New keys generated successfully!");
|
|
119
|
+
console.log(`\n${chalk.bold("New Identity:")}`);
|
|
120
|
+
console.log(` DID: ${chalk.gray(newIdentity.did)}`);
|
|
121
|
+
console.log(` Key ID: ${chalk.gray(newIdentity.keyId)}`);
|
|
122
|
+
// Emit audit line (Requirement 2.6)
|
|
123
|
+
const delegated = !isDev && !force;
|
|
124
|
+
const auditLine = generateAuditLine(currentIdentity.keyId, newIdentity.keyId, newIdentity.did, mode, delegated, force);
|
|
125
|
+
console.log(`\n${chalk.bold("š Audit Log:")}`);
|
|
126
|
+
console.log(` ${chalk.gray(auditLine)}`);
|
|
127
|
+
showSuccess("Key rotation completed successfully!");
|
|
128
|
+
console.log(`\n${chalk.bold("š Next Steps:")}`);
|
|
129
|
+
if (isDev) {
|
|
130
|
+
console.log(` ${chalk.gray("⢠Restart your development server")}`);
|
|
131
|
+
console.log(` ${chalk.gray("⢠Test with:")} ${chalk.cyan("mcpi dev")}`);
|
|
132
|
+
if (archiveFile) {
|
|
133
|
+
console.log(` ${chalk.gray("⢠Old key archived at:")} ${chalk.cyan(archiveFile)}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
console.log(` ${chalk.gray("⢠Update production environment variables:")}`);
|
|
138
|
+
console.log(` ${chalk.gray("AGENT_PRIVATE_KEY=")}${chalk.yellow(newIdentity.privateKey)}`);
|
|
139
|
+
console.log(` ${chalk.gray("AGENT_KEY_ID=")}${chalk.yellow(newIdentity.keyId)}`);
|
|
140
|
+
if (newDid) {
|
|
141
|
+
console.log(` ${chalk.gray("AGENT_DID=")}${chalk.yellow(newIdentity.did)}`);
|
|
142
|
+
}
|
|
143
|
+
console.log(` ${chalk.gray("⢠Deploy updated configuration")}`);
|
|
144
|
+
console.log(` ${chalk.gray("⢠Verify with:")} ${chalk.cyan("mcpi status")}`);
|
|
145
|
+
}
|
|
146
|
+
if (!newDid) {
|
|
147
|
+
showInfo("DID remained unchanged. Use --new-did to generate a new DID.");
|
|
148
|
+
}
|
|
149
|
+
if (newDid && isDev) {
|
|
150
|
+
showInfo("New DID generated. You may need to re-register with KTA.");
|
|
100
151
|
}
|
|
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.`);
|
|
108
152
|
}
|
|
109
|
-
|
|
153
|
+
catch (error) {
|
|
110
154
|
spinner.fail("Key rotation failed");
|
|
111
|
-
|
|
155
|
+
throw error;
|
|
112
156
|
}
|
|
113
157
|
}
|
|
114
158
|
catch (error) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
showError(error.message || "Failed to rotate keys");
|
|
124
|
-
}
|
|
159
|
+
showError(`Key rotation failed: ${error.message}`);
|
|
160
|
+
console.log(`\n${chalk.gray("You can:")}`);
|
|
161
|
+
console.log(`${chalk.gray("⢠Check your current identity with:")} ${chalk.cyan("mcpi status")}`);
|
|
162
|
+
console.log(`${chalk.gray("⢠Try with --force flag (production only)")}`);
|
|
163
|
+
console.log(`${chalk.gray("⢠Check file permissions and network connectivity")}`);
|
|
164
|
+
process.exit(CLI_EXIT_CODES.GENERAL_ERROR);
|
|
125
165
|
}
|
|
126
166
|
}
|
|
127
167
|
//# sourceMappingURL=rotate.js.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"rotate.js","sourceRoot":"","sources":["../../src/commands/rotate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAsB,KAAK,kBA2J1B"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { spawn } from "child_process";
|
|
3
|
+
import { existsSync, readFileSync } from "fs";
|
|
4
|
+
import { join } from "path";
|
|
5
|
+
import { showError, showInfo } from "../utils/prompts.js";
|
|
6
|
+
/**
|
|
7
|
+
* Start the XMCP-I application in production mode
|
|
8
|
+
*/
|
|
9
|
+
export async function start() {
|
|
10
|
+
console.log(chalk.cyan("\nš Starting Production Server\n"));
|
|
11
|
+
// Check if we're in a valid XMCP-I project
|
|
12
|
+
const packageJsonPath = join(process.cwd(), "package.json");
|
|
13
|
+
if (!existsSync(packageJsonPath)) {
|
|
14
|
+
showError("No package.json found. Are you in a valid project directory?");
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
// Check for mcpi dependency
|
|
18
|
+
try {
|
|
19
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
20
|
+
const hasmcpi = packageJson.dependencies?.mcpi ||
|
|
21
|
+
packageJson.devDependencies?.mcpi ||
|
|
22
|
+
packageJson.dependencies?.["@kya-os/mcp-i"] ||
|
|
23
|
+
packageJson.devDependencies?.["@kya-os/mcp-i"] ||
|
|
24
|
+
packageJson.dependencies?.["@kya-os/mcpi"] ||
|
|
25
|
+
packageJson.devDependencies?.["@kya-os/mcpi"];
|
|
26
|
+
if (!hasmcpi) {
|
|
27
|
+
showError("This doesn't appear to be an XMCP-I project. Missing mcpi dependency.");
|
|
28
|
+
console.log(`\n${chalk.gray("To create a new XMCP-I project:")}`);
|
|
29
|
+
console.log(`${chalk.cyan("npx @kya-os/create-mcpi-app my-agent")}`);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
showError("Failed to read package.json");
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
// Check for production environment variables
|
|
38
|
+
const requiredEnvVars = [
|
|
39
|
+
"AGENT_PRIVATE_KEY",
|
|
40
|
+
"AGENT_KEY_ID",
|
|
41
|
+
"AGENT_DID",
|
|
42
|
+
"KYA_VOUCHED_API_KEY",
|
|
43
|
+
];
|
|
44
|
+
const missingVars = requiredEnvVars.filter((varName) => !process.env[varName]);
|
|
45
|
+
if (missingVars.length > 0) {
|
|
46
|
+
showError("Missing required production environment variables:");
|
|
47
|
+
missingVars.forEach((varName) => {
|
|
48
|
+
console.log(` ${chalk.red("ā")} ${chalk.gray(varName)}`);
|
|
49
|
+
});
|
|
50
|
+
console.log(`\n${chalk.gray("Set these environment variables or run in development mode:")}`);
|
|
51
|
+
console.log(`${chalk.cyan("mcpi dev")}`);
|
|
52
|
+
console.log(`\n${chalk.gray("For platform-specific variable names:")}`);
|
|
53
|
+
console.log(`${chalk.cyan("mcpi env show")}`);
|
|
54
|
+
process.exit(21); // XMCP_I_ENOIDENTITY
|
|
55
|
+
}
|
|
56
|
+
// Determine start command
|
|
57
|
+
let command = "npm";
|
|
58
|
+
let args = ["run", "start"];
|
|
59
|
+
try {
|
|
60
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
61
|
+
if (!packageJson.scripts?.start) {
|
|
62
|
+
// Try alternative start approaches
|
|
63
|
+
const outputDirs = ["dist", "build", "out"];
|
|
64
|
+
const foundOutput = outputDirs.find((dir) => existsSync(join(process.cwd(), dir)));
|
|
65
|
+
if (foundOutput) {
|
|
66
|
+
// Look for entry points in output directory
|
|
67
|
+
const entryPoints = ["server.js", "index.js", "main.js"];
|
|
68
|
+
const entryPoint = entryPoints.find((entry) => existsSync(join(process.cwd(), foundOutput, entry)));
|
|
69
|
+
if (entryPoint) {
|
|
70
|
+
command = "node";
|
|
71
|
+
args = [join(foundOutput, entryPoint)];
|
|
72
|
+
showInfo(`No start script found, running ${foundOutput}/${entryPoint} directly.`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
showError(`Build output found in ${foundOutput}/ but no entry point detected.`);
|
|
76
|
+
console.log(`\n${chalk.gray("Expected one of:")}`);
|
|
77
|
+
entryPoints.forEach((entry) => {
|
|
78
|
+
console.log(`${chalk.gray(`⢠${foundOutput}/${entry}`)}`);
|
|
79
|
+
});
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
showError("No start script found and no build output detected.");
|
|
85
|
+
console.log(`\n${chalk.gray("Expected one of:")}`);
|
|
86
|
+
console.log(`${chalk.gray("⢠npm script 'start' in package.json")}`);
|
|
87
|
+
console.log(`${chalk.gray("⢠Built output in dist/, build/, or out/")}`);
|
|
88
|
+
console.log(`\n${chalk.gray("Try building first:")}`);
|
|
89
|
+
console.log(`${chalk.cyan("mcpi build")}`);
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
showError("Failed to parse package.json");
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
console.log(`${chalk.gray("Running:")} ${chalk.cyan(`${command} ${args.join(" ")}`)}`);
|
|
99
|
+
console.log(`${chalk.gray("Environment:")} ${chalk.green("production")}`);
|
|
100
|
+
console.log(`${chalk.gray("Press Ctrl+C to stop")}\n`);
|
|
101
|
+
// Spawn the production process
|
|
102
|
+
const child = spawn(command, args, {
|
|
103
|
+
stdio: "inherit",
|
|
104
|
+
shell: true,
|
|
105
|
+
env: {
|
|
106
|
+
...process.env,
|
|
107
|
+
NODE_ENV: "production",
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
// Handle process termination
|
|
111
|
+
process.on("SIGINT", () => {
|
|
112
|
+
console.log(chalk.yellow("\n\nš Stopping production server..."));
|
|
113
|
+
child.kill("SIGINT");
|
|
114
|
+
});
|
|
115
|
+
process.on("SIGTERM", () => {
|
|
116
|
+
child.kill("SIGTERM");
|
|
117
|
+
});
|
|
118
|
+
child.on("error", (error) => {
|
|
119
|
+
showError(`Failed to start production server: ${error.message}`);
|
|
120
|
+
process.exit(1);
|
|
121
|
+
});
|
|
122
|
+
child.on("exit", (code) => {
|
|
123
|
+
if (code !== 0 && code !== null) {
|
|
124
|
+
showError(`Production server exited with code ${code}`);
|
|
125
|
+
process.exit(code);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface StatusOptions {
|
|
2
|
+
json?: boolean;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Display agent status including DID, key ID, KTA URL, mirror status, and last handshake
|
|
6
|
+
*/
|
|
7
|
+
export declare function status(options?: StatusOptions): Promise<void>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,iBAuNvD"}
|