@axiomatic-labs/claudeflow 2.0.83 → 2.0.85
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/bin/cli.js +2 -2
- package/lib/auth.js +11 -4
- package/lib/download.js +1 -1
- package/package.json +2 -2
package/bin/cli.js
CHANGED
|
@@ -9,7 +9,7 @@ const os = require('os');
|
|
|
9
9
|
const https = require('https');
|
|
10
10
|
|
|
11
11
|
const OWNER = 'axiomatic-labs';
|
|
12
|
-
const REPO = '
|
|
12
|
+
const REPO = 'claudeflow-cli';
|
|
13
13
|
const BIN_DIR = path.join(os.homedir(), '.claudeflow', 'bin');
|
|
14
14
|
const isWindows = os.platform() === 'win32';
|
|
15
15
|
const BIN_PATH = path.join(BIN_DIR, isWindows ? 'claudeflow.exe' : 'claudeflow');
|
|
@@ -101,7 +101,7 @@ async function ensureBinary() {
|
|
|
101
101
|
await downloadBinary(token);
|
|
102
102
|
} catch (err) {
|
|
103
103
|
ui.error('Could not download Claudeflow binary.');
|
|
104
|
-
ui.info('Ensure your token has
|
|
104
|
+
ui.info('Ensure your token has the "repo" scope and can access axiomatic-labs/claudeflow-cli.');
|
|
105
105
|
process.exit(1);
|
|
106
106
|
}
|
|
107
107
|
return;
|
package/lib/auth.js
CHANGED
|
@@ -52,7 +52,7 @@ function clearCachedToken() {
|
|
|
52
52
|
function validateToken(token) {
|
|
53
53
|
return new Promise((resolve) => {
|
|
54
54
|
const req = https.get(
|
|
55
|
-
'https://api.github.com/repos/axiomatic-labs/
|
|
55
|
+
'https://api.github.com/repos/axiomatic-labs/claudeflow-cli',
|
|
56
56
|
{
|
|
57
57
|
headers: {
|
|
58
58
|
Authorization: `token ${token}`,
|
|
@@ -82,7 +82,7 @@ function promptForToken() {
|
|
|
82
82
|
console.log(` ${ui.YELLOW}No GitHub token found.${ui.RESET}`);
|
|
83
83
|
console.log('');
|
|
84
84
|
console.log(` To use Claudeflow, you need a GitHub Personal Access Token`);
|
|
85
|
-
console.log(` with access to the ${ui.BOLD}axiomatic-labs/
|
|
85
|
+
console.log(` with access to the ${ui.BOLD}axiomatic-labs/claudeflow-cli${ui.RESET} repository.`);
|
|
86
86
|
console.log('');
|
|
87
87
|
console.log(` Create one at: ${ui.CYAN}https://github.com/settings/tokens/new${ui.RESET}`);
|
|
88
88
|
console.log(` Required scope: ${ui.BOLD}repo${ui.RESET} (Full control of private repositories)`);
|
|
@@ -137,9 +137,16 @@ function getGitHubToken() {
|
|
|
137
137
|
async function requireAuth() {
|
|
138
138
|
const ui = require('./ui.js');
|
|
139
139
|
|
|
140
|
-
// Fast path: gh CLI, env var, or cached token
|
|
140
|
+
// Fast path: gh CLI, env var, or cached token — but validate first
|
|
141
141
|
const token = getGitHubToken();
|
|
142
|
-
if (token)
|
|
142
|
+
if (token) {
|
|
143
|
+
const valid = await validateToken(token);
|
|
144
|
+
if (valid) return token;
|
|
145
|
+
// Token exists but can't access repo — likely missing scopes
|
|
146
|
+
clearCachedToken();
|
|
147
|
+
ui.warn('Found a GitHub token but it cannot access the repository.');
|
|
148
|
+
ui.info('Your token may be missing the "repo" scope.');
|
|
149
|
+
}
|
|
143
150
|
|
|
144
151
|
// Interactive prompt with validation loop
|
|
145
152
|
for (let attempts = 0; attempts < 3; attempts++) {
|
package/lib/download.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axiomatic-labs/claudeflow",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.85",
|
|
4
4
|
"description": "Claudeflow — AI-powered development toolkit for Claude Code. Skills, agents, hooks, and quality gates that ship production apps.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"claudeflow": "./bin/cli.js"
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"repository": {
|
|
34
34
|
"type": "git",
|
|
35
|
-
"url": "https://github.com/axiomatic-labs/
|
|
35
|
+
"url": "https://github.com/axiomatic-labs/claudeflow-cli.git"
|
|
36
36
|
},
|
|
37
37
|
"homepage": "https://claudeflow.dev",
|
|
38
38
|
"license": "UNLICENSED",
|