sphereai-cli 1.0.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.
- package/README.md +529 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +194 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/execute.d.ts +3 -0
- package/dist/commands/execute.d.ts.map +1 -0
- package/dist/commands/execute.js +165 -0
- package/dist/commands/execute.js.map +1 -0
- package/dist/commands/files.d.ts +3 -0
- package/dist/commands/files.d.ts.map +1 -0
- package/dist/commands/files.js +235 -0
- package/dist/commands/files.js.map +1 -0
- package/dist/commands/models.d.ts +3 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +70 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/prompts.d.ts +3 -0
- package/dist/commands/prompts.d.ts.map +1 -0
- package/dist/commands/prompts.js +72 -0
- package/dist/commands/prompts.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +103 -0
- package/dist/index.js.map +1 -0
- package/dist/services/api-client.d.ts +16 -0
- package/dist/services/api-client.d.ts.map +1 -0
- package/dist/services/api-client.js +125 -0
- package/dist/services/api-client.js.map +1 -0
- package/dist/services/auth-service.d.ts +28 -0
- package/dist/services/auth-service.d.ts.map +1 -0
- package/dist/services/auth-service.js +171 -0
- package/dist/services/auth-service.js.map +1 -0
- package/dist/services/cli-api-client.d.ts +20 -0
- package/dist/services/cli-api-client.d.ts.map +1 -0
- package/dist/services/cli-api-client.js +83 -0
- package/dist/services/cli-api-client.js.map +1 -0
- package/dist/services/config-service.d.ts +43 -0
- package/dist/services/config-service.d.ts.map +1 -0
- package/dist/services/config-service.js +97 -0
- package/dist/services/config-service.js.map +1 -0
- package/dist/services/file-tracking-service.d.ts +62 -0
- package/dist/services/file-tracking-service.d.ts.map +1 -0
- package/dist/services/file-tracking-service.js +207 -0
- package/dist/services/file-tracking-service.js.map +1 -0
- package/dist/types/api-types.d.ts +67 -0
- package/dist/types/api-types.d.ts.map +1 -0
- package/dist/types/api-types.js +10 -0
- package/dist/types/api-types.js.map +1 -0
- package/dist/utils/errors.d.ts +35 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +82 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/file-walker.d.ts +31 -0
- package/dist/utils/file-walker.d.ts.map +1 -0
- package/dist/utils/file-walker.js +118 -0
- package/dist/utils/file-walker.js.map +1 -0
- package/dist/utils/formatters.d.ts +35 -0
- package/dist/utils/formatters.d.ts.map +1 -0
- package/dist/utils/formatters.js +101 -0
- package/dist/utils/formatters.js.map +1 -0
- package/dist/utils/ignore-parser.d.ts +21 -0
- package/dist/utils/ignore-parser.d.ts.map +1 -0
- package/dist/utils/ignore-parser.js +170 -0
- package/dist/utils/ignore-parser.js.map +1 -0
- package/dist/utils/sphereignore.d.ts +34 -0
- package/dist/utils/sphereignore.d.ts.map +1 -0
- package/dist/utils/sphereignore.js +148 -0
- package/dist/utils/sphereignore.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-service.js","sourceRoot":"","sources":["../../src/services/auth-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AxiosRequestConfig } from 'axios';
|
|
2
|
+
import { AuthResponse } from '../types/api-types';
|
|
3
|
+
/**
|
|
4
|
+
* CLI API Client - Used for key-based authentication
|
|
5
|
+
* Uses SPHEREAI_CLI_API_URL endpoint
|
|
6
|
+
*/
|
|
7
|
+
export declare class CliApiClient {
|
|
8
|
+
private client;
|
|
9
|
+
constructor(baseURL?: string);
|
|
10
|
+
private handleError;
|
|
11
|
+
/**
|
|
12
|
+
* Authenticate using UserChannelKey (from swagger.cli.json)
|
|
13
|
+
* POST /api/v1/Auth
|
|
14
|
+
*/
|
|
15
|
+
authenticate(key: string): Promise<AuthResponse>;
|
|
16
|
+
request<T>(config: AxiosRequestConfig): Promise<T>;
|
|
17
|
+
}
|
|
18
|
+
export declare const cliApiClient: CliApiClient;
|
|
19
|
+
export default CliApiClient;
|
|
20
|
+
//# sourceMappingURL=cli-api-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-api-client.d.ts","sourceRoot":"","sources":["../../src/services/cli-api-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAA6B,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE7E,OAAO,EAGL,YAAY,EACb,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAgB;gBAElB,OAAO,CAAC,EAAE,MAAM;IAsB5B,OAAO,CAAC,WAAW;IAkCnB;;;OAGG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAOhD,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;CAIzD;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAC;AAG/C,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
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.cliApiClient = exports.CliApiClient = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const config_service_1 = require("./config-service");
|
|
9
|
+
/**
|
|
10
|
+
* CLI API Client - Used for key-based authentication
|
|
11
|
+
* Uses SPHEREAI_CLI_API_URL endpoint
|
|
12
|
+
*/
|
|
13
|
+
class CliApiClient {
|
|
14
|
+
constructor(baseURL) {
|
|
15
|
+
const cliApiUrl = baseURL || config_service_1.configService.getCliApiUrl();
|
|
16
|
+
console.log("CLI API URL: " + cliApiUrl);
|
|
17
|
+
this.client = axios_1.default.create({
|
|
18
|
+
baseURL: cliApiUrl,
|
|
19
|
+
timeout: 30000,
|
|
20
|
+
headers: {
|
|
21
|
+
'Content-Type': 'application/json'
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
// Response interceptor for error handling
|
|
25
|
+
this.client.interceptors.response.use((response) => response, (error) => {
|
|
26
|
+
return Promise.reject(this.handleError(error));
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
handleError(error) {
|
|
30
|
+
console.log("CLI API Error:");
|
|
31
|
+
console.log(error);
|
|
32
|
+
if (error.response) {
|
|
33
|
+
const { status, data } = error.response;
|
|
34
|
+
// Handle specific status codes
|
|
35
|
+
switch (status) {
|
|
36
|
+
case 401:
|
|
37
|
+
return new Error('Invalid or expired UserChannelKey. Please check your key and try again.');
|
|
38
|
+
case 403:
|
|
39
|
+
return new Error('Access denied. You do not have permission to use this key.');
|
|
40
|
+
case 404:
|
|
41
|
+
return new Error(data?.detail || 'Authentication endpoint not found');
|
|
42
|
+
case 400:
|
|
43
|
+
if (data?.errors) {
|
|
44
|
+
const errorMessages = Object.entries(data.errors)
|
|
45
|
+
.map(([field, messages]) => `${field}: ${messages.join(', ')}`)
|
|
46
|
+
.join('\n');
|
|
47
|
+
return new Error(`Validation failed:\n${errorMessages}`);
|
|
48
|
+
}
|
|
49
|
+
return new Error(data?.detail || 'Bad request - please check your UserChannelKey format');
|
|
50
|
+
case 500:
|
|
51
|
+
return new Error('Internal server error. Please try again later.');
|
|
52
|
+
default:
|
|
53
|
+
return new Error(data?.detail || `Request failed with status ${status}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else if (error.request) {
|
|
57
|
+
return new Error('No response from CLI API server. Please check your internet connection and SPHEREAI_CLI_API_URL configuration.');
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return new Error(error.message || 'An unexpected error occurred');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Authenticate using UserChannelKey (from swagger.cli.json)
|
|
65
|
+
* POST /api/v1/Auth
|
|
66
|
+
*/
|
|
67
|
+
async authenticate(key) {
|
|
68
|
+
const request = { key };
|
|
69
|
+
const response = await this.client.post('/api/v1/Auth', request);
|
|
70
|
+
return response.data;
|
|
71
|
+
}
|
|
72
|
+
// Generic request method for custom calls
|
|
73
|
+
async request(config) {
|
|
74
|
+
const response = await this.client.request(config);
|
|
75
|
+
return response.data;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.CliApiClient = CliApiClient;
|
|
79
|
+
// Export singleton instance with default configuration
|
|
80
|
+
exports.cliApiClient = new CliApiClient();
|
|
81
|
+
// Export class for custom instances
|
|
82
|
+
exports.default = CliApiClient;
|
|
83
|
+
//# sourceMappingURL=cli-api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-api-client.js","sourceRoot":"","sources":["../../src/services/cli-api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { User } from '../types/api-types';
|
|
2
|
+
export interface TrackedFile {
|
|
3
|
+
path: string;
|
|
4
|
+
addedAt: string;
|
|
5
|
+
size: number;
|
|
6
|
+
exists: boolean;
|
|
7
|
+
}
|
|
8
|
+
interface ConfigSchema {
|
|
9
|
+
token?: string;
|
|
10
|
+
apiUrl?: string;
|
|
11
|
+
cliApiUrl?: string;
|
|
12
|
+
authUrl?: string;
|
|
13
|
+
user?: User;
|
|
14
|
+
oauthCallbackPort?: number;
|
|
15
|
+
trackedFiles?: TrackedFile[];
|
|
16
|
+
}
|
|
17
|
+
declare class ConfigService {
|
|
18
|
+
private config;
|
|
19
|
+
constructor();
|
|
20
|
+
getToken(): string | undefined;
|
|
21
|
+
setToken(token: string): void;
|
|
22
|
+
clearToken(): void;
|
|
23
|
+
hasToken(): boolean;
|
|
24
|
+
getApiUrl(): string | undefined;
|
|
25
|
+
setApiUrl(url: string): void;
|
|
26
|
+
getCliApiUrl(): string | undefined;
|
|
27
|
+
setCliApiUrl(url: string): void;
|
|
28
|
+
getUser(): User | undefined;
|
|
29
|
+
setUser(user: User): void;
|
|
30
|
+
clearUser(): void;
|
|
31
|
+
getAuthUrl(): string | undefined;
|
|
32
|
+
getOAuthCallbackPort(): number;
|
|
33
|
+
setOAuthCallbackPort(port: number): void;
|
|
34
|
+
clear(): void;
|
|
35
|
+
getConfigPath(): string;
|
|
36
|
+
getAll(): ConfigSchema;
|
|
37
|
+
getTrackedFiles(): TrackedFile[];
|
|
38
|
+
setTrackedFiles(files: TrackedFile[]): void;
|
|
39
|
+
clearTrackedFiles(): void;
|
|
40
|
+
}
|
|
41
|
+
export declare const configService: ConfigService;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=config-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-service.d.ts","sourceRoot":"","sources":["../../src/services/config-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AAED,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAqB;;IAenC,QAAQ,IAAI,MAAM,GAAG,SAAS;IAQ9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B,UAAU,IAAI,IAAI;IAIlB,QAAQ,IAAI,OAAO;IAKnB,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK5B,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK/B,OAAO,IAAI,IAAI,GAAG,SAAS;IAI3B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,SAAS,IAAI,IAAI;IAKjB,UAAU,IAAI,MAAM,GAAG,SAAS;IAKhC,oBAAoB,IAAI,MAAM;IAI9B,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxC,KAAK,IAAI,IAAI;IAKb,aAAa,IAAI,MAAM;IAKvB,MAAM,IAAI,YAAY;IAKtB,eAAe,IAAI,WAAW,EAAE;IAIhC,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI;IAI3C,iBAAiB,IAAI,IAAI;CAG1B;AAGD,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
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.configService = void 0;
|
|
7
|
+
const conf_1 = __importDefault(require("conf"));
|
|
8
|
+
class ConfigService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.config = new conf_1.default({
|
|
11
|
+
projectName: 'sphereai-cli',
|
|
12
|
+
encryptionKey: 'sphereai-cli-encryption-key-v1',
|
|
13
|
+
defaults: {
|
|
14
|
+
apiUrl: process.env.SPHEREAI_API_URL,
|
|
15
|
+
cliApiUrl: process.env.SPHEREAI_CLI_API_URL,
|
|
16
|
+
oauthCallbackPort: process.env.SPHEREAI_OAUTH_CALLBACK_PORT ? parseInt(process.env.SPHEREAI_OAUTH_CALLBACK_PORT) : 3001
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
// Token management
|
|
21
|
+
getToken() {
|
|
22
|
+
// Check environment variable first
|
|
23
|
+
if (process.env.SPHEREAI_TOKEN) {
|
|
24
|
+
return process.env.SPHEREAI_TOKEN;
|
|
25
|
+
}
|
|
26
|
+
return this.config.get('token');
|
|
27
|
+
}
|
|
28
|
+
setToken(token) {
|
|
29
|
+
this.config.set('token', token);
|
|
30
|
+
}
|
|
31
|
+
clearToken() {
|
|
32
|
+
this.config.delete('token');
|
|
33
|
+
}
|
|
34
|
+
hasToken() {
|
|
35
|
+
return !!this.getToken();
|
|
36
|
+
}
|
|
37
|
+
// API URL management
|
|
38
|
+
getApiUrl() {
|
|
39
|
+
return process.env.SPHEREAI_API_URL || this.config.get('apiUrl');
|
|
40
|
+
}
|
|
41
|
+
setApiUrl(url) {
|
|
42
|
+
this.config.set('apiUrl', url);
|
|
43
|
+
}
|
|
44
|
+
// CLI API URL management (for key-based auth)
|
|
45
|
+
getCliApiUrl() {
|
|
46
|
+
return process.env.SPHEREAI_CLI_API_URL || this.config.get('cliApiUrl');
|
|
47
|
+
}
|
|
48
|
+
setCliApiUrl(url) {
|
|
49
|
+
this.config.set('cliApiUrl', url);
|
|
50
|
+
}
|
|
51
|
+
// User management
|
|
52
|
+
getUser() {
|
|
53
|
+
return this.config.get('user');
|
|
54
|
+
}
|
|
55
|
+
setUser(user) {
|
|
56
|
+
this.config.set('user', user);
|
|
57
|
+
}
|
|
58
|
+
clearUser() {
|
|
59
|
+
this.config.delete('user');
|
|
60
|
+
}
|
|
61
|
+
// OAuth URL management
|
|
62
|
+
getAuthUrl() {
|
|
63
|
+
return process.env.SPHEREAI_AUTH_URL;
|
|
64
|
+
}
|
|
65
|
+
// OAuth callback port
|
|
66
|
+
getOAuthCallbackPort() {
|
|
67
|
+
return process.env.SPHEREAI_OAUTH_CALLBACK_PORT ? parseInt(process.env.SPHEREAI_OAUTH_CALLBACK_PORT) : 3001;
|
|
68
|
+
}
|
|
69
|
+
setOAuthCallbackPort(port) {
|
|
70
|
+
this.config.set('oauthCallbackPort', port);
|
|
71
|
+
}
|
|
72
|
+
// Clear all configuration
|
|
73
|
+
clear() {
|
|
74
|
+
this.config.clear();
|
|
75
|
+
}
|
|
76
|
+
// Get configuration file path
|
|
77
|
+
getConfigPath() {
|
|
78
|
+
return this.config.path;
|
|
79
|
+
}
|
|
80
|
+
// Get all config (for debugging)
|
|
81
|
+
getAll() {
|
|
82
|
+
return this.config.store;
|
|
83
|
+
}
|
|
84
|
+
// Tracked files management
|
|
85
|
+
getTrackedFiles() {
|
|
86
|
+
return this.config.get('trackedFiles') || [];
|
|
87
|
+
}
|
|
88
|
+
setTrackedFiles(files) {
|
|
89
|
+
this.config.set('trackedFiles', files);
|
|
90
|
+
}
|
|
91
|
+
clearTrackedFiles() {
|
|
92
|
+
this.config.delete('trackedFiles');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Export singleton instance
|
|
96
|
+
exports.configService = new ConfigService();
|
|
97
|
+
//# sourceMappingURL=config-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-service.js","sourceRoot":"","sources":["../../src/services/config-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { TrackedFile } from './config-service';
|
|
2
|
+
import { SphereIgnore } from '../utils/sphereignore';
|
|
3
|
+
export { TrackedFile };
|
|
4
|
+
/**
|
|
5
|
+
* Service to manage tracked files (similar to git staging)
|
|
6
|
+
*/
|
|
7
|
+
export declare class FileTrackingService {
|
|
8
|
+
private sphereIgnore;
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* Get all tracked files
|
|
12
|
+
*/
|
|
13
|
+
getTrackedFiles(): TrackedFile[];
|
|
14
|
+
/**
|
|
15
|
+
* Add a single file to tracking
|
|
16
|
+
*/
|
|
17
|
+
addFile(filePath: string): {
|
|
18
|
+
added: boolean;
|
|
19
|
+
reason?: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Add multiple files (recursively from a directory)
|
|
23
|
+
*/
|
|
24
|
+
addDirectory(dirPath?: string): {
|
|
25
|
+
added: string[];
|
|
26
|
+
ignored: string[];
|
|
27
|
+
errors: string[];
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Recursively walk a directory and return all file paths
|
|
31
|
+
*/
|
|
32
|
+
private walkDirectory;
|
|
33
|
+
/**
|
|
34
|
+
* Remove a file from tracking
|
|
35
|
+
*/
|
|
36
|
+
removeFile(filePath: string): {
|
|
37
|
+
removed: boolean;
|
|
38
|
+
reason?: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Clear all tracked files
|
|
42
|
+
*/
|
|
43
|
+
clearAll(): number;
|
|
44
|
+
/**
|
|
45
|
+
* Get status of tracked files
|
|
46
|
+
*/
|
|
47
|
+
getStatus(): {
|
|
48
|
+
exists: TrackedFile[];
|
|
49
|
+
missing: TrackedFile[];
|
|
50
|
+
total: number;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Get the SphereIgnore instance
|
|
54
|
+
*/
|
|
55
|
+
getSphereIgnore(): SphereIgnore;
|
|
56
|
+
/**
|
|
57
|
+
* Reload .sphereignore patterns
|
|
58
|
+
*/
|
|
59
|
+
reloadIgnorePatterns(): void;
|
|
60
|
+
}
|
|
61
|
+
export declare const fileTrackingService: FileTrackingService;
|
|
62
|
+
//# sourceMappingURL=file-tracking-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-tracking-service.d.ts","sourceRoot":"","sources":["../../src/services/file-tracking-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,YAAY,CAAe;;IAMnC;;OAEG;IACI,eAAe,IAAI,WAAW,EAAE;IAIvC;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAwCrE;;OAEG;IACI,YAAY,CAAC,OAAO,GAAE,MAAY,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAqCpG;;OAEG;IACH,OAAO,CAAC,aAAa;IAwBrB;;OAEG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAc1E;;OAEG;IACI,QAAQ,IAAI,MAAM;IAOzB;;OAEG;IACI,SAAS,IAAI;QAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAwBpF;;OAEG;IACI,eAAe,IAAI,YAAY;IAItC;;OAEG;IACI,oBAAoB,IAAI,IAAI;CAGpC;AAED,eAAO,MAAM,mBAAmB,qBAA4B,CAAC"}
|
|
@@ -0,0 +1,207 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.fileTrackingService = exports.FileTrackingService = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const config_service_1 = require("./config-service");
|
|
40
|
+
const sphereignore_1 = require("../utils/sphereignore");
|
|
41
|
+
/**
|
|
42
|
+
* Service to manage tracked files (similar to git staging)
|
|
43
|
+
*/
|
|
44
|
+
class FileTrackingService {
|
|
45
|
+
constructor() {
|
|
46
|
+
this.sphereIgnore = new sphereignore_1.SphereIgnore();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Get all tracked files
|
|
50
|
+
*/
|
|
51
|
+
getTrackedFiles() {
|
|
52
|
+
return config_service_1.configService.getTrackedFiles();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Add a single file to tracking
|
|
56
|
+
*/
|
|
57
|
+
addFile(filePath) {
|
|
58
|
+
const absolutePath = path.resolve(filePath);
|
|
59
|
+
const relativePath = path.relative(process.cwd(), absolutePath);
|
|
60
|
+
// Check if file exists
|
|
61
|
+
if (!fs.existsSync(absolutePath)) {
|
|
62
|
+
return { added: false, reason: `File does not exist: ${filePath}` };
|
|
63
|
+
}
|
|
64
|
+
// Check if it's a directory
|
|
65
|
+
const stats = fs.statSync(absolutePath);
|
|
66
|
+
if (stats.isDirectory()) {
|
|
67
|
+
return { added: false, reason: `Path is a directory, use 'sphere files add .' to add all files` };
|
|
68
|
+
}
|
|
69
|
+
// Check if file should be ignored
|
|
70
|
+
if (this.sphereIgnore.shouldIgnore(relativePath)) {
|
|
71
|
+
return { added: false, reason: `File is ignored by .sphereignore: ${relativePath}` };
|
|
72
|
+
}
|
|
73
|
+
// Get current tracked files
|
|
74
|
+
const tracked = this.getTrackedFiles();
|
|
75
|
+
// Check if already tracked
|
|
76
|
+
if (tracked.some(f => f.path === relativePath)) {
|
|
77
|
+
return { added: false, reason: `File already tracked: ${relativePath}` };
|
|
78
|
+
}
|
|
79
|
+
// Add file to tracking
|
|
80
|
+
tracked.push({
|
|
81
|
+
path: relativePath,
|
|
82
|
+
addedAt: new Date().toISOString(),
|
|
83
|
+
size: stats.size,
|
|
84
|
+
exists: true
|
|
85
|
+
});
|
|
86
|
+
config_service_1.configService.setTrackedFiles(tracked);
|
|
87
|
+
return { added: true };
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Add multiple files (recursively from a directory)
|
|
91
|
+
*/
|
|
92
|
+
addDirectory(dirPath = '.') {
|
|
93
|
+
const absolutePath = path.resolve(dirPath);
|
|
94
|
+
const result = {
|
|
95
|
+
added: [],
|
|
96
|
+
ignored: [],
|
|
97
|
+
errors: []
|
|
98
|
+
};
|
|
99
|
+
if (!fs.existsSync(absolutePath)) {
|
|
100
|
+
result.errors.push(`Directory does not exist: ${dirPath}`);
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
const files = this.walkDirectory(absolutePath);
|
|
104
|
+
for (const file of files) {
|
|
105
|
+
const relativePath = path.relative(process.cwd(), file);
|
|
106
|
+
if (this.sphereIgnore.shouldIgnore(relativePath)) {
|
|
107
|
+
result.ignored.push(relativePath);
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const addResult = this.addFile(file);
|
|
111
|
+
if (addResult.added) {
|
|
112
|
+
result.added.push(relativePath);
|
|
113
|
+
}
|
|
114
|
+
else if (addResult.reason?.includes('already tracked')) {
|
|
115
|
+
// Skip silently if already tracked
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
else if (addResult.reason) {
|
|
119
|
+
result.errors.push(addResult.reason);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return result;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Recursively walk a directory and return all file paths
|
|
126
|
+
*/
|
|
127
|
+
walkDirectory(dir) {
|
|
128
|
+
const files = [];
|
|
129
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
130
|
+
for (const entry of entries) {
|
|
131
|
+
const fullPath = path.join(dir, entry.name);
|
|
132
|
+
const relativePath = path.relative(process.cwd(), fullPath);
|
|
133
|
+
// Check if should be ignored before recursing
|
|
134
|
+
if (this.sphereIgnore.shouldIgnore(relativePath)) {
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
if (entry.isDirectory()) {
|
|
138
|
+
files.push(...this.walkDirectory(fullPath));
|
|
139
|
+
}
|
|
140
|
+
else if (entry.isFile()) {
|
|
141
|
+
files.push(fullPath);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return files;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Remove a file from tracking
|
|
148
|
+
*/
|
|
149
|
+
removeFile(filePath) {
|
|
150
|
+
const relativePath = path.relative(process.cwd(), path.resolve(filePath));
|
|
151
|
+
const tracked = this.getTrackedFiles();
|
|
152
|
+
const index = tracked.findIndex(f => f.path === relativePath);
|
|
153
|
+
if (index === -1) {
|
|
154
|
+
return { removed: false, reason: `File not tracked: ${relativePath}` };
|
|
155
|
+
}
|
|
156
|
+
tracked.splice(index, 1);
|
|
157
|
+
config_service_1.configService.setTrackedFiles(tracked);
|
|
158
|
+
return { removed: true };
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Clear all tracked files
|
|
162
|
+
*/
|
|
163
|
+
clearAll() {
|
|
164
|
+
const tracked = this.getTrackedFiles();
|
|
165
|
+
const count = tracked.length;
|
|
166
|
+
config_service_1.configService.clearTrackedFiles();
|
|
167
|
+
return count;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get status of tracked files
|
|
171
|
+
*/
|
|
172
|
+
getStatus() {
|
|
173
|
+
const tracked = this.getTrackedFiles();
|
|
174
|
+
const exists = [];
|
|
175
|
+
const missing = [];
|
|
176
|
+
for (const file of tracked) {
|
|
177
|
+
const absolutePath = path.resolve(file.path);
|
|
178
|
+
const fileExists = fs.existsSync(absolutePath);
|
|
179
|
+
const updatedFile = { ...file, exists: fileExists };
|
|
180
|
+
if (fileExists) {
|
|
181
|
+
// Update size if file exists
|
|
182
|
+
const stats = fs.statSync(absolutePath);
|
|
183
|
+
updatedFile.size = stats.size;
|
|
184
|
+
exists.push(updatedFile);
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
missing.push(updatedFile);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return { exists, missing, total: tracked.length };
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get the SphereIgnore instance
|
|
194
|
+
*/
|
|
195
|
+
getSphereIgnore() {
|
|
196
|
+
return this.sphereIgnore;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Reload .sphereignore patterns
|
|
200
|
+
*/
|
|
201
|
+
reloadIgnorePatterns() {
|
|
202
|
+
this.sphereIgnore = new sphereignore_1.SphereIgnore();
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
exports.FileTrackingService = FileTrackingService;
|
|
206
|
+
exports.fileTrackingService = new FileTrackingService();
|
|
207
|
+
//# sourceMappingURL=file-tracking-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-tracking-service.js","sourceRoot":"","sources":["../../src/services/file-tracking-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export interface UserKeyRequest {
|
|
2
|
+
key: string;
|
|
3
|
+
}
|
|
4
|
+
export interface AuthResponse {
|
|
5
|
+
jwtToken: string;
|
|
6
|
+
tokenType: string;
|
|
7
|
+
expiresIn: number;
|
|
8
|
+
userId: number;
|
|
9
|
+
userName: string;
|
|
10
|
+
channelId: number;
|
|
11
|
+
channelName: string;
|
|
12
|
+
tokenExpiration: string;
|
|
13
|
+
}
|
|
14
|
+
export interface User {
|
|
15
|
+
id: number;
|
|
16
|
+
customerId: number;
|
|
17
|
+
customerName: string;
|
|
18
|
+
name: string | null;
|
|
19
|
+
email: string | null;
|
|
20
|
+
role: UserRole;
|
|
21
|
+
active: boolean;
|
|
22
|
+
createdAt: string;
|
|
23
|
+
updatedAt: string | null;
|
|
24
|
+
deletedAt: string | null;
|
|
25
|
+
}
|
|
26
|
+
export declare enum UserRole {
|
|
27
|
+
Admin = "Admin",
|
|
28
|
+
User = "User"
|
|
29
|
+
}
|
|
30
|
+
export interface PaginatedResponse<T> {
|
|
31
|
+
data: T[];
|
|
32
|
+
page: number;
|
|
33
|
+
size: number;
|
|
34
|
+
total: number;
|
|
35
|
+
totalPages: number;
|
|
36
|
+
}
|
|
37
|
+
export interface ProblemDetails {
|
|
38
|
+
type?: string;
|
|
39
|
+
title?: string;
|
|
40
|
+
status?: number;
|
|
41
|
+
detail?: string;
|
|
42
|
+
instance?: string;
|
|
43
|
+
errors?: {
|
|
44
|
+
[key: string]: string[];
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export interface ApiClientOptions {
|
|
48
|
+
baseURL?: string;
|
|
49
|
+
token?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface ListQueryParams {
|
|
52
|
+
_page?: number;
|
|
53
|
+
_size?: number;
|
|
54
|
+
_order?: string;
|
|
55
|
+
[key: string]: any;
|
|
56
|
+
}
|
|
57
|
+
export interface PromptResponse {
|
|
58
|
+
id: number;
|
|
59
|
+
name: string | null;
|
|
60
|
+
shortDescription: string | null;
|
|
61
|
+
temperature: number;
|
|
62
|
+
customerId: number | null;
|
|
63
|
+
channelId: number;
|
|
64
|
+
createdAt: string;
|
|
65
|
+
updatedAt: string | null;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=api-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../../src/types/api-types.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAGD,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;CACtC;AAGD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAGD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Core API Response Types
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.UserRole = void 0;
|
|
5
|
+
var UserRole;
|
|
6
|
+
(function (UserRole) {
|
|
7
|
+
UserRole["Admin"] = "Admin";
|
|
8
|
+
UserRole["User"] = "User";
|
|
9
|
+
})(UserRole || (exports.UserRole = UserRole = {}));
|
|
10
|
+
//# sourceMappingURL=api-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-types.js","sourceRoot":"","sources":["../../src/types/api-types.ts"],"names":[],"mappings":";AAAA,0BAA0B;;;AA+B1B,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;AACf,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB"}
|