nia-wizard 0.1.25 → 0.1.27
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 +8 -8
- package/dist/bin.js +8 -2
- package/dist/bin.js.map +1 -1
- package/dist/{chunk-SEOYYWQT.js → chunk-ZAV3ACJJ.js} +88 -57
- package/dist/chunk-ZAV3ACJJ.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +19 -12
- package/dist/chunk-SEOYYWQT.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# nia-wizard
|
|
2
2
|
|
|
3
3
|
CLI wizard to install Nia to your coding agents via Nia CLI, Skills, or direct agent setup.
|
|
4
4
|
|
|
@@ -24,7 +24,7 @@ This will:
|
|
|
24
24
|
npx nia-wizard
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
Press Enter to continue with the recommended default setup, which signs you in and installs `nia-cli
|
|
27
|
+
Press Enter to continue with the recommended default setup, which signs you in and installs or updates `nia-cli` to the latest version, or use the arrow keys to choose advanced or manual setup.
|
|
28
28
|
|
|
29
29
|
### With API Key
|
|
30
30
|
|
|
@@ -41,20 +41,20 @@ npx nia-wizard nk_your_api_key
|
|
|
41
41
|
If you already have an API key:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
npx
|
|
44
|
+
npx nia-wizard nk_your_api_key_here
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
### MCP Commands
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
50
|
# Add Nia MCP server
|
|
51
|
-
npx
|
|
51
|
+
npx nia-wizard mcp add
|
|
52
52
|
|
|
53
53
|
# Add with API key and local mode
|
|
54
|
-
npx
|
|
54
|
+
npx nia-wizard mcp add --api-key nk_xxx --local
|
|
55
55
|
|
|
56
56
|
# Remove Nia MCP server
|
|
57
|
-
npx
|
|
57
|
+
npx nia-wizard mcp remove
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
### Skills Installation
|
|
@@ -68,7 +68,7 @@ npx nia-wizard
|
|
|
68
68
|
|
|
69
69
|
The wizard stores your API key at `~/.config/nia/api_key`.
|
|
70
70
|
|
|
71
|
-
- Select `Install Nia CLI (recommended)` to auto-install `@nozomioai/nia
|
|
71
|
+
- Select `Install Nia CLI (recommended)` to auto-install or update `@nozomioai/nia` to the latest version, run `nia auth login --api-key ...`, and then run `nia skill`.
|
|
72
72
|
- Select `Install Nia Skill` to use the existing `skills` CLI flow.
|
|
73
73
|
- Select `Install via add-mcp` for a quick install to supported agents.
|
|
74
74
|
|
|
@@ -144,7 +144,7 @@ This is the fastest way to get started - no manual copying required!
|
|
|
144
144
|
If you prefer, you can:
|
|
145
145
|
|
|
146
146
|
- Get your API key from [app.trynia.ai](https://app.trynia.ai)
|
|
147
|
-
- Pass it directly: `npx
|
|
147
|
+
- Pass it directly: `npx nia-wizard nk_xxx`
|
|
148
148
|
- Or select "Enter API key manually" when prompted
|
|
149
149
|
|
|
150
150
|
## Supported Coding Agents
|
package/dist/bin.js
CHANGED
|
@@ -8,11 +8,12 @@ import {
|
|
|
8
8
|
runWizard,
|
|
9
9
|
shutdown,
|
|
10
10
|
track
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ZAV3ACJJ.js";
|
|
12
12
|
|
|
13
13
|
// src/bin.ts
|
|
14
14
|
import yargs from "yargs";
|
|
15
15
|
import { hideBin } from "yargs/helpers";
|
|
16
|
+
var isInteractive = Boolean(process.stdin.isTTY);
|
|
16
17
|
function printCliError(error) {
|
|
17
18
|
if (error instanceof Error) {
|
|
18
19
|
console.error(`Error: ${error.message}`);
|
|
@@ -42,12 +43,17 @@ var cli = yargs(hideBin(process.argv)).scriptName("nia-wizard").usage("$0 [api-k
|
|
|
42
43
|
description: "CI mode (skip prompts)"
|
|
43
44
|
}),
|
|
44
45
|
async (argv) => {
|
|
46
|
+
const ci = argv.ci || !isInteractive;
|
|
47
|
+
if (!isInteractive && !argv.ci) {
|
|
48
|
+
console.log("Non-interactive terminal detected, running in CI mode.");
|
|
49
|
+
console.log("For the full interactive experience, run: npx nia-wizard\n");
|
|
50
|
+
}
|
|
45
51
|
try {
|
|
46
52
|
await runWizard({
|
|
47
53
|
apiKey: argv["api-key"],
|
|
48
54
|
local: argv.local ?? (argv.remote ? false : void 0),
|
|
49
55
|
debug: argv.debug,
|
|
50
|
-
ci
|
|
56
|
+
ci
|
|
51
57
|
});
|
|
52
58
|
} catch (error) {
|
|
53
59
|
track("cli_wizard_error", { error_type: "wizard", error_message: error instanceof Error ? error.message : String(error) });
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bin.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { runWizard } from './run.js';\nimport { runMCPAdd, runMCPRemove } from './mcp.js';\nimport { runSkillAdd } from './skill.js';\nimport { printAgentGuide } from './agent-guide.js';\nimport { track, shutdown } from './utils/analytics.js';\n\nfunction printCliError(error: unknown): void {\n if (error instanceof Error) {\n console.error(`Error: ${error.message}`);\n return;\n }\n\n console.error('Error:', error);\n}\n\nconst cli = yargs(hideBin(process.argv))\n .scriptName('nia-wizard')\n .usage('$0 [api-key] [options]')\n .usage('$0 mcp add [options]')\n .usage('$0 mcp remove [options]')\n .usage('$0 skill add [options]')\n .usage('$0 agent-guide')\n .command(\n '$0 [api-key]',\n 'Install Nia to your coding agents',\n (yargs) =>\n yargs\n .positional('api-key', {\n type: 'string',\n description: 'Nia API key (nk_xxx)',\n })\n .option('local', {\n type: 'boolean',\n description: 'Use local mode (requires pipx)',\n })\n .option('remote', {\n type: 'boolean',\n description: 'Use remote mode (cloud)',\n })\n .option('debug', {\n type: 'boolean',\n default: false,\n description: 'Enable debug logging',\n })\n .option('ci', {\n type: 'boolean',\n default: false,\n description: 'CI mode (skip prompts)',\n }),\n async (argv) => {\n try {\n await runWizard({\n apiKey: argv['api-key'],\n local: argv.local ?? (argv.remote ? false : undefined),\n debug: argv.debug,\n ci: argv.ci,\n });\n } catch (error) {\n track('cli_wizard_error', { error_type: 'wizard', error_message: error instanceof Error ? error.message : String(error) });\n await shutdown();\n printCliError(error);\n process.exit(1);\n }\n },\n )\n .command(\n 'agent-guide',\n 'Print API-first agent onboarding guide in Markdown',\n () => {},\n () => {\n printAgentGuide();\n },\n )\n .command(\n 'skill <command>',\n 'Manage skill installation',\n (yargs) =>\n yargs\n .command(\n 'add',\n 'Add Nia skill',\n (yargs) =>\n yargs\n .option('api-key', {\n type: 'string',\n alias: 'k',\n description: 'Nia API key (nk_xxx)',\n })\n .option('source', {\n type: 'string',\n default: 'nozomio-labs/nia-skill',\n description: 'Skill source to install',\n })\n .option('target', {\n type: 'string',\n description: 'Target coding agent for skill installation',\n })\n .option('all-agents', {\n type: 'boolean',\n default: false,\n description: 'Install to all detected agents (non-interactive)',\n })\n .option('global', {\n type: 'boolean',\n description: 'Install to global user skills directories',\n })\n .option('yes', {\n type: 'boolean',\n default: false,\n description: 'Auto-confirm prompts when supported by the skills CLI',\n })\n .option('non-interactive', {\n type: 'boolean',\n default: false,\n description: 'Fail fast instead of waiting for prompts',\n })\n .option('json', {\n type: 'boolean',\n default: false,\n description: 'Print machine-readable install result',\n })\n .option('debug', {\n type: 'boolean',\n default: false,\n description: 'Enable debug logging',\n })\n .option('ci', {\n type: 'boolean',\n default: false,\n description: 'CI mode (implies non-interactive behavior)',\n }),\n async (argv) => {\n try {\n await runSkillAdd({\n apiKey: argv['api-key'],\n source: argv.source,\n target: argv.target,\n allAgents: argv['all-agents'],\n global: argv.global,\n yes: argv.yes,\n nonInteractive: argv['non-interactive'],\n json: argv.json,\n debug: argv.debug,\n ci: argv.ci,\n });\n } catch (error) {\n printCliError(error);\n process.exit(1);\n }\n },\n )\n .demandCommand(1, 'You need to specify a command (add)'),\n () => {},\n )\n .command(\n 'mcp <command>',\n 'Manage direct agent setup',\n (yargs) =>\n yargs\n .command(\n 'add',\n 'Add Nia to coding agents',\n (yargs) =>\n yargs\n .option('api-key', {\n type: 'string',\n alias: 'k',\n description: 'Nia API key (nk_xxx)',\n })\n .option('local', {\n type: 'boolean',\n description: 'Use local mode',\n })\n .option('remote', {\n type: 'boolean',\n description: 'Use remote mode',\n })\n .option('debug', {\n type: 'boolean',\n default: false,\n description: 'Enable debug logging',\n })\n .option('ci', {\n type: 'boolean',\n default: false,\n description: 'CI mode (skip prompts)',\n }),\n async (argv) => {\n try {\n await runMCPAdd({\n apiKey: argv['api-key'],\n local: argv.local ?? (argv.remote ? false : undefined),\n debug: argv.debug,\n ci: argv.ci,\n });\n } catch (error) {\n printCliError(error);\n process.exit(1);\n }\n },\n )\n .command(\n 'remove',\n 'Remove Nia from coding agents',\n (yargs) =>\n yargs.option('debug', {\n type: 'boolean',\n default: false,\n description: 'Enable debug logging',\n }),\n async (argv) => {\n try {\n await runMCPRemove({ debug: argv.debug });\n } catch (error) {\n printCliError(error);\n process.exit(1);\n }\n },\n )\n .demandCommand(1, 'You need to specify a command (add or remove)'),\n () => {},\n )\n .help()\n .version()\n .strict();\n\ncli.parse();\n"],"mappings":"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","names":["yargs"]}
|
|
1
|
+
{"version":3,"sources":["../src/bin.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { runWizard } from './run.js';\nimport { runMCPAdd, runMCPRemove } from './mcp.js';\nimport { runSkillAdd } from './skill.js';\nimport { printAgentGuide } from './agent-guide.js';\nimport { track, shutdown } from './utils/analytics.js';\n\nconst isInteractive = Boolean(process.stdin.isTTY);\n\nfunction printCliError(error: unknown): void {\n if (error instanceof Error) {\n console.error(`Error: ${error.message}`);\n return;\n }\n\n console.error('Error:', error);\n}\n\nconst cli = yargs(hideBin(process.argv))\n .scriptName('nia-wizard')\n .usage('$0 [api-key] [options]')\n .usage('$0 mcp add [options]')\n .usage('$0 mcp remove [options]')\n .usage('$0 skill add [options]')\n .usage('$0 agent-guide')\n .command(\n '$0 [api-key]',\n 'Install Nia to your coding agents',\n (yargs) =>\n yargs\n .positional('api-key', {\n type: 'string',\n description: 'Nia API key (nk_xxx)',\n })\n .option('local', {\n type: 'boolean',\n description: 'Use local mode (requires pipx)',\n })\n .option('remote', {\n type: 'boolean',\n description: 'Use remote mode (cloud)',\n })\n .option('debug', {\n type: 'boolean',\n default: false,\n description: 'Enable debug logging',\n })\n .option('ci', {\n type: 'boolean',\n default: false,\n description: 'CI mode (skip prompts)',\n }),\n async (argv) => {\n const ci = argv.ci || !isInteractive;\n if (!isInteractive && !argv.ci) {\n console.log('Non-interactive terminal detected, running in CI mode.');\n console.log('For the full interactive experience, run: npx nia-wizard\\n');\n }\n try {\n await runWizard({\n apiKey: argv['api-key'],\n local: argv.local ?? (argv.remote ? false : undefined),\n debug: argv.debug,\n ci,\n });\n } catch (error) {\n track('cli_wizard_error', { error_type: 'wizard', error_message: error instanceof Error ? error.message : String(error) });\n await shutdown();\n printCliError(error);\n process.exit(1);\n }\n },\n )\n .command(\n 'agent-guide',\n 'Print API-first agent onboarding guide in Markdown',\n () => {},\n () => {\n printAgentGuide();\n },\n )\n .command(\n 'skill <command>',\n 'Manage skill installation',\n (yargs) =>\n yargs\n .command(\n 'add',\n 'Add Nia skill',\n (yargs) =>\n yargs\n .option('api-key', {\n type: 'string',\n alias: 'k',\n description: 'Nia API key (nk_xxx)',\n })\n .option('source', {\n type: 'string',\n default: 'nozomio-labs/nia-skill',\n description: 'Skill source to install',\n })\n .option('target', {\n type: 'string',\n description: 'Target coding agent for skill installation',\n })\n .option('all-agents', {\n type: 'boolean',\n default: false,\n description: 'Install to all detected agents (non-interactive)',\n })\n .option('global', {\n type: 'boolean',\n description: 'Install to global user skills directories',\n })\n .option('yes', {\n type: 'boolean',\n default: false,\n description: 'Auto-confirm prompts when supported by the skills CLI',\n })\n .option('non-interactive', {\n type: 'boolean',\n default: false,\n description: 'Fail fast instead of waiting for prompts',\n })\n .option('json', {\n type: 'boolean',\n default: false,\n description: 'Print machine-readable install result',\n })\n .option('debug', {\n type: 'boolean',\n default: false,\n description: 'Enable debug logging',\n })\n .option('ci', {\n type: 'boolean',\n default: false,\n description: 'CI mode (implies non-interactive behavior)',\n }),\n async (argv) => {\n try {\n await runSkillAdd({\n apiKey: argv['api-key'],\n source: argv.source,\n target: argv.target,\n allAgents: argv['all-agents'],\n global: argv.global,\n yes: argv.yes,\n nonInteractive: argv['non-interactive'],\n json: argv.json,\n debug: argv.debug,\n ci: argv.ci,\n });\n } catch (error) {\n printCliError(error);\n process.exit(1);\n }\n },\n )\n .demandCommand(1, 'You need to specify a command (add)'),\n () => {},\n )\n .command(\n 'mcp <command>',\n 'Manage direct agent setup',\n (yargs) =>\n yargs\n .command(\n 'add',\n 'Add Nia to coding agents',\n (yargs) =>\n yargs\n .option('api-key', {\n type: 'string',\n alias: 'k',\n description: 'Nia API key (nk_xxx)',\n })\n .option('local', {\n type: 'boolean',\n description: 'Use local mode',\n })\n .option('remote', {\n type: 'boolean',\n description: 'Use remote mode',\n })\n .option('debug', {\n type: 'boolean',\n default: false,\n description: 'Enable debug logging',\n })\n .option('ci', {\n type: 'boolean',\n default: false,\n description: 'CI mode (skip prompts)',\n }),\n async (argv) => {\n try {\n await runMCPAdd({\n apiKey: argv['api-key'],\n local: argv.local ?? (argv.remote ? false : undefined),\n debug: argv.debug,\n ci: argv.ci,\n });\n } catch (error) {\n printCliError(error);\n process.exit(1);\n }\n },\n )\n .command(\n 'remove',\n 'Remove Nia from coding agents',\n (yargs) =>\n yargs.option('debug', {\n type: 'boolean',\n default: false,\n description: 'Enable debug logging',\n }),\n async (argv) => {\n try {\n await runMCPRemove({ debug: argv.debug });\n } catch (error) {\n printCliError(error);\n process.exit(1);\n }\n },\n )\n .demandCommand(1, 'You need to specify a command (add or remove)'),\n () => {},\n )\n .help()\n .version()\n .strict();\n\ncli.parse();\n"],"mappings":"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","names":["yargs"]}
|
|
@@ -9,8 +9,9 @@ var require_package = __commonJS({
|
|
|
9
9
|
"package.json"(exports, module) {
|
|
10
10
|
module.exports = {
|
|
11
11
|
name: "nia-wizard",
|
|
12
|
-
version: "0.1.
|
|
12
|
+
version: "0.1.27",
|
|
13
13
|
description: "CLI wizard to install Nia to your coding agents",
|
|
14
|
+
packageManager: "pnpm@10.30.3",
|
|
14
15
|
type: "module",
|
|
15
16
|
main: "dist/index.js",
|
|
16
17
|
bin: {
|
|
@@ -18,10 +19,13 @@ var require_package = __commonJS({
|
|
|
18
19
|
},
|
|
19
20
|
scripts: {
|
|
20
21
|
build: "tsup",
|
|
22
|
+
changeset: "changeset",
|
|
21
23
|
dev: "tsup --watch",
|
|
22
24
|
start: "node dist/bin.js",
|
|
23
25
|
try: "pnpm build && node dist/bin.js",
|
|
24
26
|
typecheck: "tsc --noEmit",
|
|
27
|
+
"version-packages": "changeset version",
|
|
28
|
+
release: "pnpm build && changeset publish",
|
|
25
29
|
lint: "eslint src --ext .ts",
|
|
26
30
|
prepublishOnly: "pnpm build"
|
|
27
31
|
},
|
|
@@ -43,7 +47,11 @@ var require_package = __commonJS({
|
|
|
43
47
|
license: "MIT",
|
|
44
48
|
repository: {
|
|
45
49
|
type: "git",
|
|
46
|
-
url: "https://github.com/nozomio/nia-wizard"
|
|
50
|
+
url: "git+https://github.com/nozomio-labs/nia-wizard.git"
|
|
51
|
+
},
|
|
52
|
+
homepage: "https://github.com/nozomio-labs/nia-wizard",
|
|
53
|
+
bugs: {
|
|
54
|
+
url: "https://github.com/nozomio-labs/nia-wizard/issues"
|
|
47
55
|
},
|
|
48
56
|
dependencies: {
|
|
49
57
|
"@clack/prompts": "^0.9.1",
|
|
@@ -55,6 +63,7 @@ var require_package = __commonJS({
|
|
|
55
63
|
zod: "^3.24.0"
|
|
56
64
|
},
|
|
57
65
|
devDependencies: {
|
|
66
|
+
"@changesets/cli": "^2.30.0",
|
|
58
67
|
"@types/node": "^22.10.0",
|
|
59
68
|
"@types/yargs": "^17.0.33",
|
|
60
69
|
tsup: "^8.3.5",
|
|
@@ -483,6 +492,18 @@ async function getApiKey(providedKey, options = {}) {
|
|
|
483
492
|
track("cli_auth_completed", { auth_method: authMethod, duration_ms: Date.now() - authStartTime });
|
|
484
493
|
return apiKey;
|
|
485
494
|
}
|
|
495
|
+
function printManualOnboardingFallback() {
|
|
496
|
+
console.log("");
|
|
497
|
+
clack_default.note(
|
|
498
|
+
`${chalk.bold("Finish setup at:")}
|
|
499
|
+
|
|
500
|
+
${chalk.cyan(NIA_APP_URL)}
|
|
501
|
+
|
|
502
|
+
Once signed in, go to ${chalk.bold("Settings \u2192 API Keys")} to create a key.
|
|
503
|
+
Then re-run: ${chalk.yellow("npx nia-wizard <your-api-key>")}`,
|
|
504
|
+
"Manual Setup"
|
|
505
|
+
);
|
|
506
|
+
}
|
|
486
507
|
async function runDeviceFlow() {
|
|
487
508
|
const spinner = clack_default.spinner();
|
|
488
509
|
spinner.start("Connecting to Nia...");
|
|
@@ -499,6 +520,7 @@ async function runDeviceFlow() {
|
|
|
499
520
|
clack_default.log.error("Failed to connect to Nia servers. Check your internet connection.");
|
|
500
521
|
debug(`Device flow error: ${error}`);
|
|
501
522
|
}
|
|
523
|
+
printManualOnboardingFallback();
|
|
502
524
|
clack_default.log.info("Falling back to manual API key entry.");
|
|
503
525
|
return await promptForManualApiKey();
|
|
504
526
|
}
|
|
@@ -544,7 +566,8 @@ async function waitForAuthorizationAndExchange(session) {
|
|
|
544
566
|
while (true) {
|
|
545
567
|
if (!isSessionValid(session)) {
|
|
546
568
|
spinner.stop("Session expired");
|
|
547
|
-
clack_default.log.error("
|
|
569
|
+
clack_default.log.error("Authorization session expired before completing.");
|
|
570
|
+
printManualOnboardingFallback();
|
|
548
571
|
return abort("Session expired", 1);
|
|
549
572
|
}
|
|
550
573
|
try {
|
|
@@ -560,8 +583,8 @@ async function waitForAuthorizationAndExchange(session) {
|
|
|
560
583
|
break;
|
|
561
584
|
case "expired":
|
|
562
585
|
spinner.stop("Session expired");
|
|
563
|
-
clack_default.log.error("
|
|
564
|
-
|
|
586
|
+
clack_default.log.error("Authorization session expired.");
|
|
587
|
+
printManualOnboardingFallback();
|
|
565
588
|
return abort("Session expired", 1);
|
|
566
589
|
case "consumed":
|
|
567
590
|
spinner.stop("Session already used");
|
|
@@ -571,21 +594,21 @@ async function waitForAuthorizationAndExchange(session) {
|
|
|
571
594
|
case "invalid":
|
|
572
595
|
spinner.stop("Invalid session");
|
|
573
596
|
clack_default.log.error(error.message);
|
|
574
|
-
|
|
597
|
+
printManualOnboardingFallback();
|
|
575
598
|
return abort("Invalid session", 1);
|
|
576
599
|
case "network":
|
|
577
600
|
consecutiveNetworkErrors++;
|
|
578
601
|
if (consecutiveNetworkErrors >= MAX_NETWORK_ERRORS) {
|
|
579
602
|
spinner.stop("Connection failed");
|
|
580
603
|
clack_default.log.error(`Failed to reach Nia servers after ${MAX_NETWORK_ERRORS} attempts.`);
|
|
581
|
-
|
|
604
|
+
printManualOnboardingFallback();
|
|
582
605
|
return await promptForManualApiKey();
|
|
583
606
|
}
|
|
584
607
|
break;
|
|
585
608
|
default:
|
|
586
609
|
spinner.stop("Error");
|
|
587
610
|
clack_default.log.error(error.message);
|
|
588
|
-
|
|
611
|
+
printManualOnboardingFallback();
|
|
589
612
|
return await promptForManualApiKey();
|
|
590
613
|
}
|
|
591
614
|
} else {
|
|
@@ -594,7 +617,7 @@ async function waitForAuthorizationAndExchange(session) {
|
|
|
594
617
|
spinner.stop("Connection failed");
|
|
595
618
|
clack_default.log.error("Lost connection to Nia servers.");
|
|
596
619
|
debug(`Exchange error: ${error}`);
|
|
597
|
-
|
|
620
|
+
printManualOnboardingFallback();
|
|
598
621
|
return await promptForManualApiKey();
|
|
599
622
|
}
|
|
600
623
|
}
|
|
@@ -604,6 +627,10 @@ async function waitForAuthorizationAndExchange(session) {
|
|
|
604
627
|
}
|
|
605
628
|
}
|
|
606
629
|
async function promptForManualApiKey() {
|
|
630
|
+
if (!process.stdin.isTTY) {
|
|
631
|
+
printManualOnboardingFallback();
|
|
632
|
+
return abort("No interactive terminal available. Please re-run with an API key.", 1);
|
|
633
|
+
}
|
|
607
634
|
const shouldOpen = await abortIfCancelled(
|
|
608
635
|
clack_default.confirm({
|
|
609
636
|
message: `Open ${chalk.cyan(NIA_APP_URL)} to get your API key?`,
|
|
@@ -3313,32 +3340,62 @@ function dependenciesReady() {
|
|
|
3313
3340
|
// src/utils/nia-cli.ts
|
|
3314
3341
|
import { spawnSync as spawnSync5 } from "child_process";
|
|
3315
3342
|
var NIA_CLI_PACKAGE = "@nozomioai/nia";
|
|
3343
|
+
var LATEST_NIA_CLI_PACKAGE = `${NIA_CLI_PACKAGE}@latest`;
|
|
3316
3344
|
function npmCommand() {
|
|
3317
3345
|
return process.platform === "win32" ? "npm.cmd" : "npm";
|
|
3318
3346
|
}
|
|
3347
|
+
function bunCommand() {
|
|
3348
|
+
return process.platform === "win32" ? "bun.exe" : "bun";
|
|
3349
|
+
}
|
|
3319
3350
|
function npxCommand() {
|
|
3320
3351
|
return process.platform === "win32" ? "npx.cmd" : "npx";
|
|
3321
3352
|
}
|
|
3322
|
-
function
|
|
3323
|
-
return process.platform === "win32" ? "
|
|
3353
|
+
function bunxCommand() {
|
|
3354
|
+
return process.platform === "win32" ? "bunx.exe" : "bunx";
|
|
3324
3355
|
}
|
|
3325
|
-
function
|
|
3326
|
-
const result = spawnSync5(
|
|
3356
|
+
function hasCommand(command, args = ["--version"]) {
|
|
3357
|
+
const result = spawnSync5(command, args, {
|
|
3327
3358
|
stdio: "pipe",
|
|
3328
3359
|
encoding: "utf-8",
|
|
3329
3360
|
shell: false
|
|
3330
3361
|
});
|
|
3331
|
-
debug("
|
|
3362
|
+
debug(`${command} ${args.join(" ")} status`, result.status);
|
|
3363
|
+
return result.status === 0;
|
|
3364
|
+
}
|
|
3365
|
+
function isNiaCliInstalled() {
|
|
3366
|
+
return hasCommand(process.platform === "win32" ? "nia.cmd" : "nia");
|
|
3367
|
+
}
|
|
3368
|
+
function hasBun() {
|
|
3369
|
+
return hasCommand(bunCommand());
|
|
3370
|
+
}
|
|
3371
|
+
function runLatestNia(args) {
|
|
3372
|
+
if (hasBun()) {
|
|
3373
|
+
const result2 = spawnSync5(bunxCommand(), ["-p", LATEST_NIA_CLI_PACKAGE, "nia", ...args], {
|
|
3374
|
+
stdio: "inherit",
|
|
3375
|
+
shell: false
|
|
3376
|
+
});
|
|
3377
|
+
return result2.status === 0;
|
|
3378
|
+
}
|
|
3379
|
+
const result = spawnSync5(npxCommand(), ["-y", "-p", LATEST_NIA_CLI_PACKAGE, "nia", ...args], {
|
|
3380
|
+
stdio: "inherit",
|
|
3381
|
+
shell: false
|
|
3382
|
+
});
|
|
3332
3383
|
return result.status === 0;
|
|
3333
3384
|
}
|
|
3334
3385
|
function ensureNiaCliInstalled() {
|
|
3386
|
+
const bunAvailable = hasBun();
|
|
3387
|
+
const installSpinner = clack_default.spinner();
|
|
3335
3388
|
if (isNiaCliInstalled()) {
|
|
3336
|
-
|
|
3389
|
+
clack_default.log.info(`Updating ${LATEST_NIA_CLI_PACKAGE} globally with ${bunAvailable ? "bun" : "npm"}...`);
|
|
3390
|
+
} else {
|
|
3391
|
+
clack_default.log.info(`Installing ${LATEST_NIA_CLI_PACKAGE} globally with ${bunAvailable ? "bun" : "npm"}...`);
|
|
3337
3392
|
}
|
|
3338
|
-
|
|
3339
|
-
const
|
|
3340
|
-
|
|
3341
|
-
|
|
3393
|
+
installSpinner.start(`Installing ${LATEST_NIA_CLI_PACKAGE}...`);
|
|
3394
|
+
const installResult = bunAvailable ? spawnSync5(bunCommand(), ["add", "-g", LATEST_NIA_CLI_PACKAGE], {
|
|
3395
|
+
stdio: "pipe",
|
|
3396
|
+
encoding: "utf-8",
|
|
3397
|
+
shell: false
|
|
3398
|
+
}) : spawnSync5(npmCommand(), ["install", "-g", LATEST_NIA_CLI_PACKAGE], {
|
|
3342
3399
|
stdio: "pipe",
|
|
3343
3400
|
encoding: "utf-8",
|
|
3344
3401
|
shell: false
|
|
@@ -3350,53 +3407,27 @@ function ensureNiaCliInstalled() {
|
|
|
3350
3407
|
clack_default.log.error(installOutput);
|
|
3351
3408
|
}
|
|
3352
3409
|
clack_default.log.error("Could not install @nozomioai/nia automatically.");
|
|
3353
|
-
clack_default.log.info(
|
|
3410
|
+
clack_default.log.info(
|
|
3411
|
+
`Install manually: ${bunAvailable ? "bun add -g" : "npm install -g"} ${LATEST_NIA_CLI_PACKAGE}`
|
|
3412
|
+
);
|
|
3354
3413
|
return false;
|
|
3355
3414
|
}
|
|
3356
3415
|
if (!isNiaCliInstalled()) {
|
|
3357
3416
|
installSpinner.stop("Installed @nozomioai/nia, but `nia` is not available");
|
|
3358
3417
|
clack_default.log.error("The `nia` command is still unavailable in your PATH.");
|
|
3359
|
-
clack_default.log.info(
|
|
3418
|
+
clack_default.log.info(
|
|
3419
|
+
`Open a new terminal or run: ${bunAvailable ? "bun add -g" : "npm install -g"} ${LATEST_NIA_CLI_PACKAGE}`
|
|
3420
|
+
);
|
|
3360
3421
|
return false;
|
|
3361
3422
|
}
|
|
3362
|
-
installSpinner.stop(
|
|
3423
|
+
installSpinner.stop(`${LATEST_NIA_CLI_PACKAGE} ready!`);
|
|
3363
3424
|
return true;
|
|
3364
3425
|
}
|
|
3365
3426
|
function runNiaSkill() {
|
|
3366
|
-
|
|
3367
|
-
stdio: "inherit",
|
|
3368
|
-
shell: false
|
|
3369
|
-
});
|
|
3370
|
-
if (runResult.status === 0) {
|
|
3371
|
-
return true;
|
|
3372
|
-
}
|
|
3373
|
-
debug("nia skill --all failed, falling back to npx @nozomioai/nia skill --all", runResult.status);
|
|
3374
|
-
clack_default.log.warn("`nia skill --all` failed. Trying `npx -y @nozomioai/nia skill --all`...");
|
|
3375
|
-
const fallbackResult = spawnSync5(npxCommand(), ["-y", NIA_CLI_PACKAGE, "skill", "--all"], {
|
|
3376
|
-
stdio: "inherit",
|
|
3377
|
-
shell: false
|
|
3378
|
-
});
|
|
3379
|
-
return fallbackResult.status === 0;
|
|
3427
|
+
return runLatestNia(["skill", "--all"]);
|
|
3380
3428
|
}
|
|
3381
3429
|
function runNiaAuthLogin(apiKey) {
|
|
3382
|
-
|
|
3383
|
-
stdio: "inherit",
|
|
3384
|
-
shell: false
|
|
3385
|
-
});
|
|
3386
|
-
if (authResult.status === 0) {
|
|
3387
|
-
return true;
|
|
3388
|
-
}
|
|
3389
|
-
debug("nia auth login failed, falling back to npx @nozomioai/nia auth login", authResult.status);
|
|
3390
|
-
clack_default.log.warn("`nia auth login` failed. Trying `npx -y @nozomioai/nia auth login`...");
|
|
3391
|
-
const fallbackResult = spawnSync5(
|
|
3392
|
-
npxCommand(),
|
|
3393
|
-
["-y", NIA_CLI_PACKAGE, "auth", "login", "--api-key", apiKey],
|
|
3394
|
-
{
|
|
3395
|
-
stdio: "inherit",
|
|
3396
|
-
shell: false
|
|
3397
|
-
}
|
|
3398
|
-
);
|
|
3399
|
-
return fallbackResult.status === 0;
|
|
3430
|
+
return runLatestNia(["auth", "login", "--api-key", apiKey]);
|
|
3400
3431
|
}
|
|
3401
3432
|
|
|
3402
3433
|
// src/run.ts
|
|
@@ -3405,7 +3436,7 @@ async function runAddMcpInstall(apiKey) {
|
|
|
3405
3436
|
const result = spawnSync6(
|
|
3406
3437
|
"npx",
|
|
3407
3438
|
[
|
|
3408
|
-
"add-mcp",
|
|
3439
|
+
"add-mcp@latest",
|
|
3409
3440
|
REMOTE_MCP_URL,
|
|
3410
3441
|
"--header",
|
|
3411
3442
|
`"Authorization: Bearer ${apiKey}"`,
|
|
@@ -3422,7 +3453,7 @@ async function runAddMcpInstall(apiKey) {
|
|
|
3422
3453
|
}
|
|
3423
3454
|
async function runSkillsInstall() {
|
|
3424
3455
|
clack_default.log.info("Launching Nia skill installer...\n");
|
|
3425
|
-
const result = spawnSync6("npx", ["skills", "add", "nozomio-labs/nia-skill"], {
|
|
3456
|
+
const result = spawnSync6("npx", ["skills@latest", "add", "nozomio-labs/nia-skill"], {
|
|
3426
3457
|
stdio: "inherit",
|
|
3427
3458
|
shell: true
|
|
3428
3459
|
});
|
|
@@ -4072,4 +4103,4 @@ export {
|
|
|
4072
4103
|
runSkillAdd,
|
|
4073
4104
|
printAgentGuide
|
|
4074
4105
|
};
|
|
4075
|
-
//# sourceMappingURL=chunk-
|
|
4106
|
+
//# sourceMappingURL=chunk-ZAV3ACJJ.js.map
|