@scottwalker/claude-connector 0.4.8 → 0.5.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.
@@ -0,0 +1,2 @@
1
+ export declare function setup(): Promise<void>;
2
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAoGA,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA2D3C"}
@@ -0,0 +1,144 @@
1
+ import { execSync, spawn } from 'node:child_process';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ const REQUIRED_NODE_MAJOR = 18;
5
+ const CLAUDE_PACKAGE = '@anthropic-ai/claude-code';
6
+ function banner() {
7
+ console.log();
8
+ console.log(chalk.bold(' Claude Connector — Setup'));
9
+ console.log(chalk.dim(' ─────────────────────────'));
10
+ console.log();
11
+ }
12
+ function checkNodeVersion() {
13
+ const major = parseInt(process.versions.node, 10);
14
+ if (major >= REQUIRED_NODE_MAJOR) {
15
+ return { ok: true, message: `Node.js ${process.versions.node}` };
16
+ }
17
+ return { ok: false, message: `Node.js ${process.versions.node} — requires >= ${REQUIRED_NODE_MAJOR}` };
18
+ }
19
+ function isClaudeInstalled() {
20
+ try {
21
+ execSync('claude --version', { stdio: 'pipe' });
22
+ return true;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
28
+ function getClaudeVersion() {
29
+ try {
30
+ return execSync('claude --version', { stdio: 'pipe', encoding: 'utf-8' }).trim();
31
+ }
32
+ catch {
33
+ return 'unknown';
34
+ }
35
+ }
36
+ function isClaudeAuthenticated() {
37
+ try {
38
+ const output = execSync('claude auth status', { stdio: 'pipe', encoding: 'utf-8' });
39
+ return output.toLowerCase().includes('logged in') || !output.toLowerCase().includes('not logged');
40
+ }
41
+ catch {
42
+ return false;
43
+ }
44
+ }
45
+ async function installClaude() {
46
+ const spinner = ora('Installing Claude Code...').start();
47
+ try {
48
+ execSync(`npm install -g ${CLAUDE_PACKAGE}`, { stdio: 'pipe' });
49
+ const version = getClaudeVersion();
50
+ spinner.succeed(`Claude Code installed ${chalk.dim(`(${version})`)}`);
51
+ return { ok: true };
52
+ }
53
+ catch (err) {
54
+ const message = err instanceof Error ? err.message : String(err);
55
+ spinner.fail('Failed to install Claude Code');
56
+ console.log(chalk.red(` ${message}`));
57
+ return { ok: false };
58
+ }
59
+ }
60
+ async function authenticate() {
61
+ console.log();
62
+ console.log(chalk.bold(' Authentication'));
63
+ console.log(chalk.dim(' Follow the instructions below from Claude Code:\n'));
64
+ return new Promise((resolve) => {
65
+ const child = spawn('claude', ['login'], {
66
+ stdio: 'inherit',
67
+ shell: true,
68
+ });
69
+ child.on('close', (code) => {
70
+ console.log();
71
+ if (code === 0) {
72
+ resolve({ ok: true });
73
+ }
74
+ else {
75
+ resolve({ ok: false, message: `claude login exited with code ${code}` });
76
+ }
77
+ });
78
+ child.on('error', (err) => {
79
+ console.log();
80
+ resolve({ ok: false, message: err.message });
81
+ });
82
+ });
83
+ }
84
+ function printResult(ok, label) {
85
+ const icon = ok ? chalk.green('✔') : chalk.red('✖');
86
+ console.log(` ${icon} ${label}`);
87
+ }
88
+ export async function setup() {
89
+ banner();
90
+ // Step 1: Check Node.js
91
+ const nodeCheck = checkNodeVersion();
92
+ printResult(nodeCheck.ok, nodeCheck.message);
93
+ if (!nodeCheck.ok) {
94
+ console.log();
95
+ console.log(chalk.red(' Setup aborted. Please upgrade Node.js.'));
96
+ process.exit(1);
97
+ }
98
+ // Step 2: Check / install Claude Code
99
+ if (isClaudeInstalled()) {
100
+ const version = getClaudeVersion();
101
+ printResult(true, `Claude Code ${chalk.dim(`(${version})`)}`);
102
+ }
103
+ else {
104
+ printResult(false, 'Claude Code not found');
105
+ console.log();
106
+ const install = await installClaude();
107
+ if (!install.ok) {
108
+ console.log();
109
+ console.log(chalk.red(' Setup aborted.'));
110
+ process.exit(1);
111
+ }
112
+ }
113
+ // Step 3: Check / run authentication
114
+ if (isClaudeAuthenticated()) {
115
+ printResult(true, 'Authenticated');
116
+ console.log();
117
+ console.log(chalk.green.bold(' All set! You can now use Claude Connector.'));
118
+ console.log(chalk.dim(' Try: claude "Hello, world!"'));
119
+ console.log();
120
+ return;
121
+ }
122
+ const authResult = await authenticate();
123
+ if (!authResult.ok) {
124
+ printResult(false, `Authentication failed${authResult.message ? `: ${authResult.message}` : ''}`);
125
+ console.log();
126
+ console.log(chalk.red(' Setup aborted.'));
127
+ process.exit(1);
128
+ }
129
+ // Verify
130
+ if (isClaudeAuthenticated()) {
131
+ printResult(true, 'Authenticated');
132
+ }
133
+ else {
134
+ printResult(false, 'Authentication could not be verified');
135
+ console.log(chalk.yellow(' Try running: claude login'));
136
+ console.log();
137
+ return;
138
+ }
139
+ console.log();
140
+ console.log(chalk.green.bold(' All set! You can now use Claude Connector.'));
141
+ console.log(chalk.dim(' Try: claude "Hello, world!"'));
142
+ console.log();
143
+ }
144
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import { setup } from './commands/setup.js';
4
+ const program = new Command()
5
+ .name('claude-connector')
6
+ .description('CLI for Claude Connector — quick setup & management')
7
+ .version('0.5.0');
8
+ program
9
+ .command('setup')
10
+ .description('Install Claude Code and authenticate')
11
+ .action(setup);
12
+ program.parse();
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,kBAAkB,CAAC;KACxB,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,CAAC,CAAC;AAEjB,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scottwalker/claude-connector",
3
- "version": "0.4.8",
3
+ "version": "0.5.0",
4
4
  "description": "Programmatic Node.js interface for Claude Code CLI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -11,6 +11,9 @@
11
11
  "import": "./dist/index.js"
12
12
  }
13
13
  },
14
+ "bin": {
15
+ "claude-connector": "./dist/cli/index.js"
16
+ },
14
17
  "files": [
15
18
  "dist",
16
19
  "README.md",
@@ -56,7 +59,10 @@
56
59
  "access": "public"
57
60
  },
58
61
  "dependencies": {
59
- "@anthropic-ai/claude-agent-sdk": "^0.2.72"
62
+ "@anthropic-ai/claude-agent-sdk": "^0.2.72",
63
+ "chalk": "^5.6.2",
64
+ "commander": "^14.0.3",
65
+ "ora": "^9.3.0"
60
66
  },
61
67
  "devDependencies": {
62
68
  "@types/node": "^22.0.0",