sphereai-cli 1.0.20 → 1.0.22
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/.env +12 -12
- package/README.md +282 -282
- package/dist/index.js +1 -108
- package/package.json +52 -50
- package/dist/commands/auth.d.ts +0 -3
- package/dist/commands/auth.d.ts.map +0 -1
- package/dist/commands/auth.js +0 -193
- package/dist/commands/auth.js.map +0 -1
- package/dist/commands/debug.d.ts +0 -3
- package/dist/commands/debug.d.ts.map +0 -1
- package/dist/commands/debug.js +0 -49
- package/dist/commands/debug.js.map +0 -1
- package/dist/commands/execute.d.ts +0 -3
- package/dist/commands/execute.d.ts.map +0 -1
- package/dist/commands/execute.js +0 -189
- package/dist/commands/execute.js.map +0 -1
- package/dist/commands/files.d.ts +0 -3
- package/dist/commands/files.d.ts.map +0 -1
- package/dist/commands/files.js +0 -235
- package/dist/commands/files.js.map +0 -1
- package/dist/commands/init.d.ts +0 -3
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -71
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/prompts.d.ts +0 -3
- package/dist/commands/prompts.d.ts.map +0 -1
- package/dist/commands/prompts.js +0 -72
- package/dist/commands/prompts.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/services/api-client.d.ts +0 -15
- package/dist/services/api-client.d.ts.map +0 -1
- package/dist/services/api-client.js +0 -92
- package/dist/services/api-client.js.map +0 -1
- package/dist/services/auth-service.d.ts +0 -23
- package/dist/services/auth-service.d.ts.map +0 -1
- package/dist/services/auth-service.js +0 -166
- package/dist/services/auth-service.js.map +0 -1
- package/dist/services/cli-api-client.d.ts +0 -18
- package/dist/services/cli-api-client.d.ts.map +0 -1
- package/dist/services/cli-api-client.js +0 -57
- package/dist/services/cli-api-client.js.map +0 -1
- package/dist/services/config-service.d.ts +0 -46
- package/dist/services/config-service.d.ts.map +0 -1
- package/dist/services/config-service.js +0 -101
- package/dist/services/config-service.js.map +0 -1
- package/dist/services/file-tracking-service.d.ts +0 -62
- package/dist/services/file-tracking-service.d.ts.map +0 -1
- package/dist/services/file-tracking-service.js +0 -207
- package/dist/services/file-tracking-service.js.map +0 -1
- package/dist/types/api-types.d.ts +0 -83
- package/dist/types/api-types.d.ts.map +0 -1
- package/dist/types/api-types.js +0 -10
- package/dist/types/api-types.js.map +0 -1
- package/dist/utils/axios-debug.d.ts +0 -15
- package/dist/utils/axios-debug.d.ts.map +0 -1
- package/dist/utils/axios-debug.js +0 -53
- package/dist/utils/axios-debug.js.map +0 -1
- package/dist/utils/errors.d.ts +0 -38
- package/dist/utils/errors.d.ts.map +0 -1
- package/dist/utils/errors.js +0 -115
- package/dist/utils/errors.js.map +0 -1
- package/dist/utils/formatters.d.ts +0 -35
- package/dist/utils/formatters.d.ts.map +0 -1
- package/dist/utils/formatters.js +0 -101
- package/dist/utils/formatters.js.map +0 -1
- package/dist/utils/sphereignore.d.ts +0 -34
- package/dist/utils/sphereignore.d.ts.map +0 -1
- package/dist/utils/sphereignore.js +0 -148
- package/dist/utils/sphereignore.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,50 +1,52 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "sphereai-cli",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "CLI tool for interacting with the SphereAI API",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"bin": {
|
|
7
|
-
"sphereai": "dist/index.js"
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"build": "tsc",
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"clean": "rimraf dist"
|
|
15
|
-
},
|
|
16
|
-
"keywords": [
|
|
17
|
-
"cli",
|
|
18
|
-
"sphereai",
|
|
19
|
-
"ai",
|
|
20
|
-
"api",
|
|
21
|
-
"rest"
|
|
22
|
-
],
|
|
23
|
-
"author": "Nava Tech For Business",
|
|
24
|
-
"license": "ISC",
|
|
25
|
-
"dependencies": {
|
|
26
|
-
"axios": "^1.6.7",
|
|
27
|
-
"chalk": "^4.1.2",
|
|
28
|
-
"cli-table3": "^0.6.3",
|
|
29
|
-
"commander": "^12.0.0",
|
|
30
|
-
"conf": "^10.2.0",
|
|
31
|
-
"dotenv": "^17.2.3",
|
|
32
|
-
"express": "^4.18.2",
|
|
33
|
-
"open": "^8.4.2",
|
|
34
|
-
"ora": "^5.4.1"
|
|
35
|
-
},
|
|
36
|
-
"devDependencies": {
|
|
37
|
-
"@types/express": "^4.17.21",
|
|
38
|
-
"@types/node": "^20.11.17",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "sphereai-cli",
|
|
3
|
+
"version": "1.0.22",
|
|
4
|
+
"description": "CLI tool for interacting with the SphereAI API",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"sphereai": "dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"build:prod": "node build.js",
|
|
12
|
+
"dev": "tsc --watch",
|
|
13
|
+
"start": "node dist/index.js",
|
|
14
|
+
"clean": "rimraf dist"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"cli",
|
|
18
|
+
"sphereai",
|
|
19
|
+
"ai",
|
|
20
|
+
"api",
|
|
21
|
+
"rest"
|
|
22
|
+
],
|
|
23
|
+
"author": "Nava Tech For Business",
|
|
24
|
+
"license": "ISC",
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"axios": "^1.6.7",
|
|
27
|
+
"chalk": "^4.1.2",
|
|
28
|
+
"cli-table3": "^0.6.3",
|
|
29
|
+
"commander": "^12.0.0",
|
|
30
|
+
"conf": "^10.2.0",
|
|
31
|
+
"dotenv": "^17.2.3",
|
|
32
|
+
"express": "^4.18.2",
|
|
33
|
+
"open": "^8.4.2",
|
|
34
|
+
"ora": "^5.4.1"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/express": "^4.17.21",
|
|
38
|
+
"@types/node": "^20.11.17",
|
|
39
|
+
"esbuild": "^0.24.0",
|
|
40
|
+
"javascript-obfuscator": "^4.1.1",
|
|
41
|
+
"rimraf": "^5.0.5",
|
|
42
|
+
"typescript": "^5.3.3"
|
|
43
|
+
},
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=14.0.0"
|
|
46
|
+
},
|
|
47
|
+
"files": [
|
|
48
|
+
"dist",
|
|
49
|
+
".env",
|
|
50
|
+
".sphereignore"
|
|
51
|
+
]
|
|
52
|
+
}
|
package/dist/commands/auth.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuM3D"}
|
package/dist/commands/auth.js
DELETED
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.registerAuthCommands = registerAuthCommands;
|
|
7
|
-
const ora_1 = __importDefault(require("ora"));
|
|
8
|
-
const config_service_1 = require("../services/config-service");
|
|
9
|
-
const api_client_1 = require("../services/api-client");
|
|
10
|
-
const auth_service_1 = require("../services/auth-service");
|
|
11
|
-
const formatters_1 = require("../utils/formatters");
|
|
12
|
-
const errors_1 = require("../utils/errors");
|
|
13
|
-
function registerAuthCommands(program) {
|
|
14
|
-
const auth = program
|
|
15
|
-
.command('auth')
|
|
16
|
-
.description('Authentication commands');
|
|
17
|
-
// Login command with UserChannelKey (key-based authentication)
|
|
18
|
-
auth
|
|
19
|
-
.command('login')
|
|
20
|
-
.description('Authenticate using UserChannelKey')
|
|
21
|
-
.argument('<key>', 'UserChannelKey for authentication')
|
|
22
|
-
.action(async (key) => {
|
|
23
|
-
try {
|
|
24
|
-
const spinner = (0, ora_1.default)('Authenticating...').start();
|
|
25
|
-
// Authenticate with the API using the key
|
|
26
|
-
const authResponse = await auth_service_1.authService.authenticateWithKey(key);
|
|
27
|
-
// Save token
|
|
28
|
-
config_service_1.configService.setToken(authResponse.jwtToken);
|
|
29
|
-
api_client_1.apiClient.setAuthToken(authResponse.jwtToken);
|
|
30
|
-
// Save user info from auth response
|
|
31
|
-
const user = {
|
|
32
|
-
id: authResponse.userId,
|
|
33
|
-
customerId: authResponse.channelId, // Using channelId as customerId
|
|
34
|
-
customerName: authResponse.channelName,
|
|
35
|
-
name: authResponse.userName,
|
|
36
|
-
email: null,
|
|
37
|
-
role: 'User',
|
|
38
|
-
active: true,
|
|
39
|
-
createdAt: new Date().toISOString(),
|
|
40
|
-
updatedAt: null,
|
|
41
|
-
deletedAt: null
|
|
42
|
-
};
|
|
43
|
-
config_service_1.configService.setUser(user);
|
|
44
|
-
spinner.succeed('Successfully authenticated!');
|
|
45
|
-
(0, formatters_1.success)(`Logged in as: ${authResponse.userName}`);
|
|
46
|
-
(0, formatters_1.info)(`Channel: ${authResponse.channelName}`);
|
|
47
|
-
(0, formatters_1.info)(`Token expires in: ${authResponse.expiresIn} seconds`);
|
|
48
|
-
(0, formatters_1.info)(`Token expiration: ${new Date(authResponse.tokenExpiration).toLocaleString()}`);
|
|
49
|
-
}
|
|
50
|
-
catch (err) {
|
|
51
|
-
(0, errors_1.handleError)(err);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
// Login command with OAuth2 (legacy)
|
|
55
|
-
auth
|
|
56
|
-
.command('login-oauth')
|
|
57
|
-
.description('Authenticate using OAuth2 flow (legacy)')
|
|
58
|
-
.action(async () => {
|
|
59
|
-
try {
|
|
60
|
-
const spinner = (0, ora_1.default)('Authenticating...').start();
|
|
61
|
-
// OAuth2 flow - get URL from config or env
|
|
62
|
-
const authUrl = config_service_1.configService.getAuthUrl();
|
|
63
|
-
if (!authUrl) {
|
|
64
|
-
spinner.stop();
|
|
65
|
-
(0, formatters_1.error)('OAuth2 authorization URL not configured.');
|
|
66
|
-
(0, formatters_1.info)('Please set SPHEREAI_AUTH_URL in your .env file');
|
|
67
|
-
process.exit(1);
|
|
68
|
-
}
|
|
69
|
-
spinner.stop();
|
|
70
|
-
(0, formatters_1.info)('Opening browser for authentication...');
|
|
71
|
-
(0, formatters_1.info)('If the browser does not open automatically, please copy and paste the URL shown.');
|
|
72
|
-
const code = await auth_service_1.authService.startOAuth2Flow(authUrl);
|
|
73
|
-
spinner.start('Exchanging authorization code for token...');
|
|
74
|
-
const token = await auth_service_1.authService.exchangeCodeForToken(code);
|
|
75
|
-
// Save token
|
|
76
|
-
config_service_1.configService.setToken(token);
|
|
77
|
-
api_client_1.apiClient.setAuthToken(token);
|
|
78
|
-
// Try to get user info
|
|
79
|
-
try {
|
|
80
|
-
const user = await api_client_1.apiClient.getCurrentUser();
|
|
81
|
-
config_service_1.configService.setUser(user);
|
|
82
|
-
spinner.succeed('Successfully authenticated!');
|
|
83
|
-
(0, formatters_1.success)(`Logged in as: ${user.email || user.name || 'User'}`);
|
|
84
|
-
}
|
|
85
|
-
catch (err) {
|
|
86
|
-
// If getting user info fails, still consider login successful
|
|
87
|
-
spinner.succeed('Successfully authenticated!');
|
|
88
|
-
(0, formatters_1.success)('Token saved successfully');
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
catch (err) {
|
|
92
|
-
(0, errors_1.handleError)(err);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
// Logout command
|
|
96
|
-
auth
|
|
97
|
-
.command('logout')
|
|
98
|
-
.description('Clear stored credentials and logout')
|
|
99
|
-
.action(async () => {
|
|
100
|
-
try {
|
|
101
|
-
const hasToken = config_service_1.configService.hasToken();
|
|
102
|
-
if (!hasToken) {
|
|
103
|
-
(0, formatters_1.info)('You are not currently logged in');
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
config_service_1.configService.clearToken();
|
|
107
|
-
config_service_1.configService.clearUser();
|
|
108
|
-
api_client_1.apiClient.clearAuthToken();
|
|
109
|
-
(0, formatters_1.success)('Successfully logged out');
|
|
110
|
-
(0, formatters_1.info)(`Configuration cleared from: ${config_service_1.configService.getConfigPath()}`);
|
|
111
|
-
}
|
|
112
|
-
catch (err) {
|
|
113
|
-
(0, errors_1.handleError)(err);
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
// Whoami command
|
|
117
|
-
auth
|
|
118
|
-
.command('whoami')
|
|
119
|
-
.description('Display current user information')
|
|
120
|
-
.option('-o, --output <format>', 'Output format (json|table)', 'table')
|
|
121
|
-
.action(async (options) => {
|
|
122
|
-
try {
|
|
123
|
-
const token = config_service_1.configService.getToken();
|
|
124
|
-
if (!token) {
|
|
125
|
-
(0, formatters_1.error)('Not authenticated. Please login using "sphereai auth login"');
|
|
126
|
-
process.exit(1);
|
|
127
|
-
}
|
|
128
|
-
const spinner = (0, ora_1.default)('Fetching user information...').start();
|
|
129
|
-
// Try to get user from config first
|
|
130
|
-
let user = config_service_1.configService.getUser();
|
|
131
|
-
// If not in config, fetch from API
|
|
132
|
-
if (!user) {
|
|
133
|
-
user = await api_client_1.apiClient.getCurrentUser();
|
|
134
|
-
config_service_1.configService.setUser(user);
|
|
135
|
-
}
|
|
136
|
-
spinner.stop();
|
|
137
|
-
const format = options.output;
|
|
138
|
-
console.log((0, formatters_1.formatUser)(user, format));
|
|
139
|
-
}
|
|
140
|
-
catch (err) {
|
|
141
|
-
(0, errors_1.handleError)(err);
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
// Config command for setting token manually
|
|
145
|
-
auth
|
|
146
|
-
.command('set-token')
|
|
147
|
-
.description('Manually set authentication token')
|
|
148
|
-
.argument('<token>', 'JWT token to set')
|
|
149
|
-
.action(async (token) => {
|
|
150
|
-
try {
|
|
151
|
-
config_service_1.configService.setToken(token);
|
|
152
|
-
api_client_1.apiClient.setAuthToken(token);
|
|
153
|
-
const spinner = (0, ora_1.default)('Validating token...').start();
|
|
154
|
-
// Try to validate token by fetching user info
|
|
155
|
-
try {
|
|
156
|
-
const user = await api_client_1.apiClient.getCurrentUser();
|
|
157
|
-
config_service_1.configService.setUser(user);
|
|
158
|
-
spinner.succeed('Token set and validated successfully!');
|
|
159
|
-
(0, formatters_1.success)(`Logged in as: ${user.email || user.name || 'User'}`);
|
|
160
|
-
}
|
|
161
|
-
catch (err) {
|
|
162
|
-
spinner.warn('Token set but validation failed');
|
|
163
|
-
(0, formatters_1.info)('The token was saved but could not be validated. It may be invalid or expired.');
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
catch (err) {
|
|
167
|
-
(0, errors_1.handleError)(err);
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
// Config info command
|
|
171
|
-
auth
|
|
172
|
-
.command('config')
|
|
173
|
-
.description('Display current configuration')
|
|
174
|
-
.action(() => {
|
|
175
|
-
try {
|
|
176
|
-
const hasToken = config_service_1.configService.hasToken();
|
|
177
|
-
const user = config_service_1.configService.getUser();
|
|
178
|
-
const configPath = config_service_1.configService.getConfigPath();
|
|
179
|
-
(0, formatters_1.info)('Current Configuration:');
|
|
180
|
-
console.log(` Config Path: ${configPath}`);
|
|
181
|
-
console.log(` Authenticated: ${hasToken ? 'Yes' : 'No'}`);
|
|
182
|
-
if (user) {
|
|
183
|
-
console.log(` User: ${user.email || user.name || 'Unknown'}`);
|
|
184
|
-
console.log(` User ID: ${user.id}`);
|
|
185
|
-
console.log(` Customer ID: ${user.customerId}`);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
catch (err) {
|
|
189
|
-
(0, errors_1.handleError)(err);
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/debug.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/commands/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0C3D"}
|
package/dist/commands/debug.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerDebugCommand = registerDebugCommand;
|
|
4
|
-
const config_service_1 = require("../services/config-service");
|
|
5
|
-
const formatters_1 = require("../utils/formatters");
|
|
6
|
-
const errors_1 = require("../utils/errors");
|
|
7
|
-
function registerDebugCommand(program) {
|
|
8
|
-
program
|
|
9
|
-
.command('debug', { hidden: true })
|
|
10
|
-
.description('Enable or disable debug mode for API requests/responses')
|
|
11
|
-
.argument('[mode]', 'on or off (shows current status if omitted)')
|
|
12
|
-
.action((mode) => {
|
|
13
|
-
try {
|
|
14
|
-
if (!mode) {
|
|
15
|
-
// Show current status
|
|
16
|
-
const debugMode = config_service_1.configService.getDebugMode();
|
|
17
|
-
(0, formatters_1.info)(`Debug mode is currently: ${debugMode ? 'ON' : 'OFF'}`);
|
|
18
|
-
if (debugMode) {
|
|
19
|
-
(0, formatters_1.info)('All API requests and responses will be logged to the console');
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
(0, formatters_1.info)('Use "sphereai debug on" to enable debug logging');
|
|
23
|
-
}
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
const enableDebug = mode.toLowerCase() === 'on' || mode.toLowerCase() === 'true' || mode === '1';
|
|
27
|
-
const disableDebug = mode.toLowerCase() === 'off' || mode.toLowerCase() === 'false' || mode === '0';
|
|
28
|
-
if (!enableDebug && !disableDebug) {
|
|
29
|
-
(0, formatters_1.error)('Invalid mode. Use "on" or "off"');
|
|
30
|
-
(0, formatters_1.info)('Example: sphereai debug on');
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
config_service_1.configService.setDebugMode(enableDebug);
|
|
34
|
-
if (enableDebug) {
|
|
35
|
-
(0, formatters_1.success)('Debug mode enabled');
|
|
36
|
-
(0, formatters_1.info)('All API requests and responses will now be logged to the console');
|
|
37
|
-
(0, formatters_1.info)('This will include headers, bodies, and full response data');
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
(0, formatters_1.success)('Debug mode disabled');
|
|
41
|
-
(0, formatters_1.info)('API requests and responses will no longer be logged');
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
(0, errors_1.handleError)(err);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=debug.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/commands/debug.ts"],"names":[],"mappings":";;AAKA,oDA0CC;AA9CD,+DAA2D;AAC3D,oDAA2D;AAC3D,4CAA8C;AAE9C,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;SAClC,WAAW,CAAC,yDAAyD,CAAC;SACtE,QAAQ,CAAC,QAAQ,EAAE,6CAA6C,CAAC;SACjE,MAAM,CAAC,CAAC,IAAa,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,sBAAsB;gBACtB,MAAM,SAAS,GAAG,8BAAa,CAAC,YAAY,EAAE,CAAC;gBAC/C,IAAA,iBAAI,EAAC,4BAA4B,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC7D,IAAI,SAAS,EAAE,CAAC;oBACd,IAAA,iBAAI,EAAC,8DAA8D,CAAC,CAAC;gBACvE,CAAC;qBAAM,CAAC;oBACN,IAAA,iBAAI,EAAC,iDAAiD,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC;YACjG,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,IAAI,IAAI,KAAK,GAAG,CAAC;YAEpG,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClC,IAAA,kBAAK,EAAC,iCAAiC,CAAC,CAAC;gBACzC,IAAA,iBAAI,EAAC,4BAA4B,CAAC,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,8BAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAExC,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAA,oBAAO,EAAC,oBAAoB,CAAC,CAAC;gBAC9B,IAAA,iBAAI,EAAC,kEAAkE,CAAC,CAAC;gBACzE,IAAA,iBAAI,EAAC,2DAA2D,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,IAAA,oBAAO,EAAC,qBAAqB,CAAC,CAAC;gBAC/B,IAAA,iBAAI,EAAC,qDAAqD,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAA,oBAAW,EAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoJ7D"}
|
package/dist/commands/execute.js
DELETED
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.registerExecuteCommand = registerExecuteCommand;
|
|
40
|
-
const file_tracking_service_1 = require("../services/file-tracking-service");
|
|
41
|
-
const cli_api_client_1 = require("../services/cli-api-client");
|
|
42
|
-
const config_service_1 = require("../services/config-service");
|
|
43
|
-
const formatters_1 = require("../utils/formatters");
|
|
44
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
45
|
-
const fs = __importStar(require("fs"));
|
|
46
|
-
const path = __importStar(require("path"));
|
|
47
|
-
const ora_1 = __importDefault(require("ora"));
|
|
48
|
-
function getDefaultResponseTemplateContent() {
|
|
49
|
-
// Read from the template file bundled with the package
|
|
50
|
-
const templatePath = path.join(__dirname, '..', '..', 'response-template.md');
|
|
51
|
-
if (fs.existsSync(templatePath)) {
|
|
52
|
-
return fs.readFileSync(templatePath, 'utf-8');
|
|
53
|
-
}
|
|
54
|
-
throw new Error('Default response template not found');
|
|
55
|
-
}
|
|
56
|
-
function registerExecuteCommand(program) {
|
|
57
|
-
program
|
|
58
|
-
.command('execute')
|
|
59
|
-
.alias('exec')
|
|
60
|
-
.description('Execute AI command with tracked files')
|
|
61
|
-
.requiredOption('-p, --prompt-id <id>', 'Prompt ID to use for AI processing')
|
|
62
|
-
.option('-o, --output <format>', 'Output format: table or json', 'table')
|
|
63
|
-
.option('--save-dir <dir>', 'Directory to save detailed response (defaults to current directory)', '.')
|
|
64
|
-
.action(async (options) => {
|
|
65
|
-
try {
|
|
66
|
-
// Validate prompt ID
|
|
67
|
-
const promptId = parseInt(options.promptId, 10);
|
|
68
|
-
if (isNaN(promptId) || promptId <= 0) {
|
|
69
|
-
(0, formatters_1.error)('Invalid prompt ID. Must be a positive number.');
|
|
70
|
-
process.exit(1);
|
|
71
|
-
}
|
|
72
|
-
// Get tracked files
|
|
73
|
-
const tracked = file_tracking_service_1.fileTrackingService.getTrackedFiles();
|
|
74
|
-
if (tracked.length === 0) {
|
|
75
|
-
(0, formatters_1.error)('No files are currently tracked. Use "sphereai files add ." to add files first.');
|
|
76
|
-
process.exit(1);
|
|
77
|
-
}
|
|
78
|
-
// Check authentication
|
|
79
|
-
const token = config_service_1.configService.getToken();
|
|
80
|
-
if (!token) {
|
|
81
|
-
(0, formatters_1.error)('Not authenticated. Please login first using: sphereai auth login YOUR_KEY');
|
|
82
|
-
process.exit(1);
|
|
83
|
-
}
|
|
84
|
-
// Set auth token for CLI API client
|
|
85
|
-
cli_api_client_1.cliApiClient.setAuthToken(token);
|
|
86
|
-
// Read file contents
|
|
87
|
-
(0, formatters_1.info)(`Reading ${tracked.length} tracked file(s)...`);
|
|
88
|
-
const files = [];
|
|
89
|
-
let missingFiles = 0;
|
|
90
|
-
for (const trackedFile of tracked) {
|
|
91
|
-
const absolutePath = path.resolve(trackedFile.path);
|
|
92
|
-
if (!fs.existsSync(absolutePath)) {
|
|
93
|
-
(0, formatters_1.warning)(`File not found: ${trackedFile.path}`);
|
|
94
|
-
missingFiles++;
|
|
95
|
-
continue;
|
|
96
|
-
}
|
|
97
|
-
try {
|
|
98
|
-
const content = fs.readFileSync(absolutePath, 'utf-8');
|
|
99
|
-
files.push({
|
|
100
|
-
path: trackedFile.path,
|
|
101
|
-
name: path.basename(trackedFile.path),
|
|
102
|
-
code: content
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
catch (err) {
|
|
106
|
-
(0, formatters_1.warning)(`Failed to read file ${trackedFile.path}: ${err instanceof Error ? err.message : String(err)}`);
|
|
107
|
-
missingFiles++;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
if (files.length === 0) {
|
|
111
|
-
(0, formatters_1.error)('No files could be read. Please check file paths and try again.');
|
|
112
|
-
process.exit(1);
|
|
113
|
-
}
|
|
114
|
-
if (missingFiles > 0) {
|
|
115
|
-
(0, formatters_1.warning)(`Skipped ${missingFiles} file(s) that could not be read.`);
|
|
116
|
-
}
|
|
117
|
-
(0, formatters_1.success)(`Sending ${files.length} file(s) to AI for processing...`);
|
|
118
|
-
// Show spinner for long-running operation
|
|
119
|
-
const spinner = (0, ora_1.default)('Processing with AI...').start();
|
|
120
|
-
try {
|
|
121
|
-
// Execute command
|
|
122
|
-
const response = await cli_api_client_1.cliApiClient.executeCommand({
|
|
123
|
-
promptId,
|
|
124
|
-
files
|
|
125
|
-
});
|
|
126
|
-
spinner.stop();
|
|
127
|
-
// Display response based on format
|
|
128
|
-
if (options.output === 'json') {
|
|
129
|
-
console.log(JSON.stringify(response, null, 2));
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
console.log('\n' + chalk_1.default.cyan.bold('AI Response:') + '\n');
|
|
133
|
-
if (response.shortAnswer) {
|
|
134
|
-
console.log(chalk_1.default.green.bold('Short Answer:'));
|
|
135
|
-
console.log(response.shortAnswer);
|
|
136
|
-
console.log();
|
|
137
|
-
}
|
|
138
|
-
// Save detailed answer to file if it exists
|
|
139
|
-
if (response.detailedAnswer) {
|
|
140
|
-
const timestamp = new Date().toISOString().replace(/[:.]/g, '-').replace('T', '_').replace('Z', '');
|
|
141
|
-
const filename = `sphereai-response-${promptId}-${timestamp}.md`;
|
|
142
|
-
const saveDir = path.resolve(options.saveDir);
|
|
143
|
-
const filepath = path.join(saveDir, filename);
|
|
144
|
-
try {
|
|
145
|
-
// Ensure directory exists
|
|
146
|
-
if (!fs.existsSync(saveDir)) {
|
|
147
|
-
fs.mkdirSync(saveDir, { recursive: true });
|
|
148
|
-
}
|
|
149
|
-
var template = getDefaultResponseTemplateContent();
|
|
150
|
-
template = template.replace('{{prompt_id}}', promptId.toString());
|
|
151
|
-
template = template.replace('{{date_time}}', new Date().toLocaleString());
|
|
152
|
-
template = template.replace('{{files_length}}', files.length.toString());
|
|
153
|
-
template = template.replace('{{detailed_answer}}', response.detailedAnswer.replace(/\\n/g, '\n'));
|
|
154
|
-
template = template.replace('{{input_tokens}}', response.inputTokens.toLocaleString());
|
|
155
|
-
template = template.replace('{{output_tokens}}', response.outputTokens.toLocaleString());
|
|
156
|
-
template = template.replace('{{total_tokens}}', response.totalTokens.toLocaleString());
|
|
157
|
-
fs.writeFileSync(filepath, template, 'utf-8');
|
|
158
|
-
console.log(chalk_1.default.green.bold('Detailed Answer:'));
|
|
159
|
-
console.log(chalk_1.default.gray(`Saved to: ${chalk_1.default.cyan(filepath)}`));
|
|
160
|
-
console.log();
|
|
161
|
-
}
|
|
162
|
-
catch (err) {
|
|
163
|
-
(0, formatters_1.warning)(`Failed to save detailed response: ${err instanceof Error ? err.message : String(err)}`);
|
|
164
|
-
console.log(chalk_1.default.green.bold('Detailed Answer:'));
|
|
165
|
-
console.log(response.detailedAnswer);
|
|
166
|
-
console.log();
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
// Show token usage
|
|
170
|
-
console.log(chalk_1.default.gray('─'.repeat(60)));
|
|
171
|
-
console.log(chalk_1.default.cyan('Token Usage:'));
|
|
172
|
-
console.log(chalk_1.default.gray(` Input tokens: ${response.inputTokens.toLocaleString()}`));
|
|
173
|
-
console.log(chalk_1.default.gray(` Output tokens: ${response.outputTokens.toLocaleString()}`));
|
|
174
|
-
console.log(chalk_1.default.gray(` Total tokens: ${response.totalTokens.toLocaleString()}`));
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
catch (err) {
|
|
178
|
-
spinner.stop();
|
|
179
|
-
(0, formatters_1.error)(`Failed to execute command: ${err instanceof Error ? err.message : String(err)}`);
|
|
180
|
-
process.exit(1);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
catch (err) {
|
|
184
|
-
(0, formatters_1.error)(`Failed to execute command: ${err instanceof Error ? err.message : String(err)}`);
|
|
185
|
-
process.exit(1);
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
//# sourceMappingURL=execute.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/commands/execute.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/files.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/commands/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqP5D"}
|