nia-wizard 0.1.26 → 0.1.28

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 CHANGED
@@ -1,4 +1,4 @@
1
- # @nia/wizard
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
 
@@ -26,6 +26,12 @@ npx nia-wizard
26
26
 
27
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
+ Print the agent-specific onboarding prompt:
30
+
31
+ ```bash
32
+ npx nia-wizard --agent
33
+ ```
34
+
29
35
  ### With API Key
30
36
 
31
37
  ```bash
@@ -41,20 +47,20 @@ npx nia-wizard nk_your_api_key
41
47
  If you already have an API key:
42
48
 
43
49
  ```bash
44
- npx @nia/wizard nk_your_api_key_here
50
+ npx nia-wizard nk_your_api_key_here
45
51
  ```
46
52
 
47
53
  ### MCP Commands
48
54
 
49
55
  ```bash
50
56
  # Add Nia MCP server
51
- npx @nia/wizard mcp add
57
+ npx nia-wizard mcp add
52
58
 
53
59
  # Add with API key and local mode
54
- npx @nia/wizard mcp add --api-key nk_xxx --local
60
+ npx nia-wizard mcp add --api-key nk_xxx --local
55
61
 
56
62
  # Remove Nia MCP server
57
- npx @nia/wizard mcp remove
63
+ npx nia-wizard mcp remove
58
64
  ```
59
65
 
60
66
  ### Skills Installation
@@ -102,10 +108,10 @@ npx nia-wizard skill add \
102
108
  --ci
103
109
  ```
104
110
 
105
- Print the headless onboarding guide for agents:
111
+ Print the agent-facing onboarding prompt:
106
112
 
107
113
  ```bash
108
- npx nia-wizard agent-guide
114
+ npx nia-wizard --agent
109
115
  ```
110
116
 
111
117
  ## Options
@@ -116,6 +122,7 @@ npx nia-wizard agent-guide
116
122
  | `--remote` | Use remote mode (connects to Nia cloud) |
117
123
  | `--debug` | Enable debug logging |
118
124
  | `--ci` | CI mode (skip prompts, use defaults) |
125
+ | `--agent` | Print agent-facing Nia CLI onboarding prompt (root command) |
119
126
  | `--api-key`, `-k` | Nia API key |
120
127
  | `--non-interactive` | Fail fast instead of waiting for prompts (skill command) |
121
128
  | `--target` | Target coding agent for skill installation (skill command) |
@@ -144,9 +151,29 @@ This is the fastest way to get started - no manual copying required!
144
151
  If you prefer, you can:
145
152
 
146
153
  - Get your API key from [app.trynia.ai](https://app.trynia.ai)
147
- - Pass it directly: `npx @nia/wizard nk_xxx`
154
+ - Pass it directly: `npx nia-wizard nk_xxx`
148
155
  - Or select "Enter API key manually" when prompted
149
156
 
157
+ ## Agent Onboarding Prompt
158
+
159
+ Use the root `--agent` flag when you want an external coding agent to perform the Nia CLI setup steps on the user's machine instead of launching the local interactive wizard.
160
+
161
+ ```bash
162
+ npx nia-wizard --agent
163
+ ```
164
+
165
+ This prints the canonical agent workflow:
166
+
167
+ 1. Run `bun --version`
168
+ 2. Install `@nozomioai/nia@latest` globally with Bun or npm
169
+ 3. Tell the user to open `https://app.trynia.ai`
170
+ 4. Tell the user to go to `Settings -> API Keys` and create an API key
171
+ 5. Ask the user to paste the `nk_...` key back to the agent
172
+ 6. Run `nia auth login --api-key <nk_api_key>`
173
+ 7. Run `nia skill --all`
174
+
175
+ This is a prompt-only flow intended for external agents. The user retrieves the API key manually and sends it back to the agent to finish setup.
176
+
150
177
  ## Supported Coding Agents
151
178
 
152
179
  ### Full Support (Local + Remote)
package/dist/bin.js CHANGED
@@ -8,11 +8,12 @@ import {
8
8
  runWizard,
9
9
  shutdown,
10
10
  track
11
- } from "./chunk-TOXYR2OK.js";
11
+ } from "./chunk-5A4LUPM5.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}`);
@@ -20,7 +21,7 @@ function printCliError(error) {
20
21
  }
21
22
  console.error("Error:", error);
22
23
  }
23
- var cli = yargs(hideBin(process.argv)).scriptName("nia-wizard").usage("$0 [api-key] [options]").usage("$0 mcp add [options]").usage("$0 mcp remove [options]").usage("$0 skill add [options]").usage("$0 agent-guide").command(
24
+ var cli = yargs(hideBin(process.argv)).scriptName("nia-wizard").usage("$0 [api-key] [options]").usage("$0 mcp add [options]").usage("$0 mcp remove [options]").usage("$0 skill add [options]").command(
24
25
  "$0 [api-key]",
25
26
  "Install Nia to your coding agents",
26
27
  (yargs2) => yargs2.positional("api-key", {
@@ -40,14 +41,31 @@ var cli = yargs(hideBin(process.argv)).scriptName("nia-wizard").usage("$0 [api-k
40
41
  type: "boolean",
41
42
  default: false,
42
43
  description: "CI mode (skip prompts)"
44
+ }).option("agent", {
45
+ type: "boolean",
46
+ default: false,
47
+ description: "Print agent-facing Nia CLI onboarding prompt"
43
48
  }),
44
49
  async (argv) => {
45
50
  try {
51
+ if (argv.agent) {
52
+ printAgentGuide();
53
+ return;
54
+ }
55
+ const apiKeyArg = typeof argv["api-key"] === "string" ? argv["api-key"] : typeof argv.apiKey === "string" ? argv.apiKey : void 0;
56
+ if (apiKeyArg === "agent-guide") {
57
+ throw new Error("The `agent-guide` subcommand has been removed. Use `npx nia-wizard --agent`.");
58
+ }
59
+ const ci = argv.ci || !isInteractive;
60
+ if (!isInteractive && !argv.ci) {
61
+ console.log("Non-interactive terminal detected, running in CI mode.");
62
+ console.log("For the full interactive experience, run: npx nia-wizard\n");
63
+ }
46
64
  await runWizard({
47
65
  apiKey: argv["api-key"],
48
66
  local: argv.local ?? (argv.remote ? false : void 0),
49
67
  debug: argv.debug,
50
- ci: argv.ci
68
+ ci
51
69
  });
52
70
  } catch (error) {
53
71
  track("cli_wizard_error", { error_type: "wizard", error_message: error instanceof Error ? error.message : String(error) });
@@ -56,14 +74,6 @@ var cli = yargs(hideBin(process.argv)).scriptName("nia-wizard").usage("$0 [api-k
56
74
  process.exit(1);
57
75
  }
58
76
  }
59
- ).command(
60
- "agent-guide",
61
- "Print API-first agent onboarding guide in Markdown",
62
- () => {
63
- },
64
- () => {
65
- printAgentGuide();
66
- }
67
77
  ).command(
68
78
  "skill <command>",
69
79
  "Manage skill installation",
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 .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 .option('agent', {\n type: 'boolean',\n default: false,\n description: 'Print agent-facing Nia CLI onboarding prompt',\n }),\n async (argv) => {\n try {\n if (argv.agent) {\n printAgentGuide();\n return;\n }\n\n const apiKeyArg = typeof argv['api-key'] === 'string'\n ? argv['api-key']\n : typeof argv.apiKey === 'string'\n ? argv.apiKey\n : undefined;\n\n if (apiKeyArg === 'agent-guide') {\n throw new Error('The `agent-guide` subcommand has been removed. Use `npx nia-wizard --agent`.');\n }\n\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\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 '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.26",
12
+ version: "0.1.28",
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("Session has expired. Please start over.");
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("Session has expired.");
564
- clack_default.log.info("Please run the wizard again to start a new session.");
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
- clack_default.log.info("Please run the wizard again to start a new session.");
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
- clack_default.log.info("Falling back to manual API key entry.");
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
- clack_default.log.info("Falling back to manual API key entry.");
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
- clack_default.log.info("Falling back to manual API key entry.");
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?`,
@@ -3409,7 +3436,7 @@ async function runAddMcpInstall(apiKey) {
3409
3436
  const result = spawnSync6(
3410
3437
  "npx",
3411
3438
  [
3412
- "add-mcp",
3439
+ "add-mcp@latest",
3413
3440
  REMOTE_MCP_URL,
3414
3441
  "--header",
3415
3442
  `"Authorization: Bearer ${apiKey}"`,
@@ -3426,7 +3453,7 @@ async function runAddMcpInstall(apiKey) {
3426
3453
  }
3427
3454
  async function runSkillsInstall() {
3428
3455
  clack_default.log.info("Launching Nia skill installer...\n");
3429
- const result = spawnSync6("npx", ["skills", "add", "nozomio-labs/nia-skill"], {
3456
+ const result = spawnSync6("npx", ["skills@latest", "add", "nozomio-labs/nia-skill"], {
3430
3457
  stdio: "inherit",
3431
3458
  shell: true
3432
3459
  });
@@ -3975,86 +4002,71 @@ function runSkillsInstall2(params) {
3975
4002
  }
3976
4003
 
3977
4004
  // src/agent-guide.ts
3978
- var AGENT_GUIDE_MARKDOWN = [
3979
- "# Nia Agent Onboarding (Headless)",
3980
- "",
3981
- "Use this flow when an agent cannot complete browser-based setup.",
3982
- "",
3983
- "## Base URL",
3984
- "",
3985
- "`https://apigcp.trynia.ai/v2`",
3986
- "",
3987
- "## New Account",
3988
- "",
3989
- "1. Create account + bootstrap token:",
3990
- "",
3991
- "```bash",
3992
- 'curl -sS -X POST "https://apigcp.trynia.ai/v2/auth/signup" \\',
3993
- ' -H "Content-Type: application/json" \\',
3994
- ` -d '{"email":"agent@example.com","password":"strong-password-123","organization_name":"Agent Org"}'`,
3995
- "```",
3996
- "",
3997
- "2. Exchange bootstrap token for API key:",
3998
- "",
3999
- "```bash",
4000
- 'curl -sS -X POST "https://apigcp.trynia.ai/v2/auth/bootstrap-key" \\',
4001
- ' -H "Content-Type: application/json" \\',
4002
- ` -d '{"bootstrap_token":"<bootstrap-token>"}'`,
4003
- "```",
4004
- "",
4005
- "## Existing Account",
4006
- "",
4007
- "Create API key directly with email/password:",
4008
- "",
4009
- "```bash",
4010
- 'curl -sS -X POST "https://apigcp.trynia.ai/v2/auth/login-key" \\',
4011
- ' -H "Content-Type: application/json" \\',
4012
- ` -d '{"email":"agent@example.com","password":"strong-password-123"}'`,
4013
- "```",
4014
- "",
4015
- "## Install Nia Skill (Non-Interactive)",
4016
- "",
4017
- "Install for all detected agents:",
4018
- "",
4019
- "```bash",
4020
- "npx nia-wizard skill add \\",
4021
- ' --api-key "<nk_api_key>" \\',
4022
- " --source nozomio-labs/nia-skill \\",
4023
- " --all-agents \\",
4024
- " --non-interactive \\",
4025
- " --ci",
4026
- "```",
4027
- "",
4028
- "Install for one target agent:",
4029
- "",
4030
- "```bash",
4031
- "npx nia-wizard skill add \\",
4032
- ' --api-key "<nk_api_key>" \\',
4033
- " --source nozomio-labs/nia-skill \\",
4034
- " --non-interactive \\",
4035
- " --ci",
4036
- "```",
4037
- "",
4038
- "Target pinning example:",
4039
- "",
4040
- "```bash",
4041
- 'npx nia-wizard skill add --api-key "<nk_api_key>" --target codex --non-interactive --ci',
4042
- "```",
4043
- "",
4044
- "Supported `--target` values:",
4045
- "",
4046
- "`amp`, `kimi-cli`, `replit`, `universal`, `antigravity`, `augment`, `claude-code`, `openclaw`, `cline`, `codebuddy`, `codex`, `command-code`, `continue`, `cortex`, `crush`, `cursor`, `droid`, `gemini-cli`, `github-copilot`, `goose`, `junie`, `iflow-cli`, `kilo`, `kiro-cli`, `kode`, `mcpjam`, `mistral-vibe`, `mux`, `opencode`, `openhands`, `pi`, `qoder`, `qwen-code`, `roo`, `trae`, `trae-cn`, `windsurf`, `zencoder`, `neovate`, `pochi`, `adal`",
4047
- "",
4048
- "## Command",
4049
- "",
4050
- "Print this guide any time:",
4051
- "",
4052
- "```bash",
4053
- "npx nia-wizard agent-guide",
4054
- "```"
4055
- ].join("\n");
4005
+ function getAgentGuideMarkdown() {
4006
+ return [
4007
+ "# Nia Agent Onboarding Prompt",
4008
+ "",
4009
+ "Run this workflow when you are setting up Nia for the user from an external coding agent session.",
4010
+ "",
4011
+ "## Goal",
4012
+ "",
4013
+ "Install the Nia CLI, direct the user to retrieve their API key manually, ask them to paste the key back to you, then finish CLI authentication and skill setup.",
4014
+ "",
4015
+ "## Steps",
4016
+ "",
4017
+ "1. Check whether Bun is installed:",
4018
+ "",
4019
+ "```bash",
4020
+ "bun --version",
4021
+ "```",
4022
+ "",
4023
+ "2. Install `@nozomioai/nia@latest` globally:",
4024
+ "",
4025
+ "- If `bun --version` succeeds, run:",
4026
+ "",
4027
+ "```bash",
4028
+ "bun add -g @nozomioai/nia@latest",
4029
+ "```",
4030
+ "",
4031
+ "- If `bun --version` fails, run:",
4032
+ "",
4033
+ "```bash",
4034
+ "npm install -g @nozomioai/nia@latest",
4035
+ "```",
4036
+ "",
4037
+ "3. Tell the user to open this URL and sign in:",
4038
+ "",
4039
+ "`https://app.trynia.ai`",
4040
+ "",
4041
+ "4. Tell the user to go to `Settings -> API Keys`, create a key, and copy the `nk_...` token.",
4042
+ "",
4043
+ "5. Ask the user to paste the API key back into the agent chat or session.",
4044
+ "",
4045
+ "6. After the user provides the key, configure the CLI:",
4046
+ "",
4047
+ "```bash",
4048
+ "nia auth login --api-key <nk_api_key>",
4049
+ "```",
4050
+ "",
4051
+ "7. Configure Nia skills:",
4052
+ "",
4053
+ "```bash",
4054
+ "nia skill --all",
4055
+ "```",
4056
+ "",
4057
+ "## Agent Message Template",
4058
+ "",
4059
+ "Send the user a message like this:",
4060
+ "",
4061
+ "> I need your Nia API key to finish setup. Please open https://app.trynia.ai, sign in, go to Settings -> API Keys, create a key, and paste the `nk_...` value here. Once you send it, I will finish the setup for you.",
4062
+ "",
4063
+ "## Expected Result",
4064
+ "",
4065
+ "`nia` is installed, authenticated with the user-provided API key, and `nia skill --all` has completed."
4066
+ ].join("\n");
4067
+ }
4056
4068
  function printAgentGuide() {
4057
- console.log(AGENT_GUIDE_MARKDOWN);
4069
+ console.log(getAgentGuideMarkdown());
4058
4070
  }
4059
4071
 
4060
4072
  export {
@@ -4074,6 +4086,7 @@ export {
4074
4086
  runMCPAdd,
4075
4087
  runMCPRemove,
4076
4088
  runSkillAdd,
4089
+ getAgentGuideMarkdown,
4077
4090
  printAgentGuide
4078
4091
  };
4079
- //# sourceMappingURL=chunk-TOXYR2OK.js.map
4092
+ //# sourceMappingURL=chunk-5A4LUPM5.js.map