@husar.ai/cli 0.4.1 → 0.4.3
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/AGENTS.md +835 -0
- package/dist/auth/api.d.ts +15 -0
- package/dist/auth/api.js +86 -0
- package/dist/auth/api.js.map +1 -0
- package/dist/auth/config.d.ts +32 -0
- package/dist/auth/config.js +95 -0
- package/dist/auth/config.js.map +1 -0
- package/dist/auth/login.d.ts +30 -0
- package/dist/auth/login.js +450 -0
- package/dist/auth/login.js.map +1 -0
- package/dist/cli.js +83 -3
- package/dist/cli.js.map +1 -1
- package/dist/functions/create.d.ts +6 -0
- package/dist/functions/create.js +311 -0
- package/dist/functions/create.js.map +1 -0
- package/dist/mcp.js +20 -14
- package/dist/mcp.js.map +1 -1
- package/dist/types/config.d.ts +3 -1
- package/dist/types/config.js +12 -1
- package/dist/types/config.js.map +1 -1
- package/dist/zeus/const.js +635 -289
- package/dist/zeus/const.js.map +1 -1
- package/dist/zeus/index.d.ts +3079 -1601
- package/dist/zeus/index.js +150 -2
- package/dist/zeus/index.js.map +1 -1
- package/package.json +4 -4
- package/src/auth/api.ts +133 -0
- package/src/auth/config.ts +198 -0
- package/src/auth/login.ts +631 -0
- package/src/cli.ts +96 -4
- package/src/functions/create.ts +489 -0
- package/src/mcp.ts +47 -27
- package/src/types/config.ts +32 -1
- package/src/zeus/const.ts +641 -289
- package/src/zeus/index.ts +2996 -1465
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface CloudProject {
|
|
2
|
+
name: string;
|
|
3
|
+
adminURL: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ProjectsResponse {
|
|
6
|
+
items: CloudProject[];
|
|
7
|
+
hasNext: boolean;
|
|
8
|
+
total: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function getProjects(accessToken: string): Promise<CloudProject[]>;
|
|
11
|
+
export declare function getUserInfo(accessToken: string): Promise<{
|
|
12
|
+
username: string;
|
|
13
|
+
fullName?: string;
|
|
14
|
+
} | null>;
|
|
15
|
+
export declare function verifyAccessToken(accessToken: string): Promise<boolean>;
|
package/dist/auth/api.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
const CLOUD_API_URL = process.env.HUSAR_CLOUD_API || 'https://backend.husar.ai/api/graphql';
|
|
2
|
+
export async function getProjects(accessToken) {
|
|
3
|
+
const response = await fetch(CLOUD_API_URL, {
|
|
4
|
+
method: 'POST',
|
|
5
|
+
headers: {
|
|
6
|
+
'Content-Type': 'application/json',
|
|
7
|
+
Authorization: accessToken,
|
|
8
|
+
},
|
|
9
|
+
body: JSON.stringify({
|
|
10
|
+
query: `
|
|
11
|
+
query GetUserProjects {
|
|
12
|
+
users {
|
|
13
|
+
user {
|
|
14
|
+
cms {
|
|
15
|
+
projects(page: { start: 0, limit: 100 }) {
|
|
16
|
+
items {
|
|
17
|
+
name
|
|
18
|
+
adminURL
|
|
19
|
+
}
|
|
20
|
+
page {
|
|
21
|
+
hasNext
|
|
22
|
+
total
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
`,
|
|
30
|
+
}),
|
|
31
|
+
});
|
|
32
|
+
if (!response.ok) {
|
|
33
|
+
throw new Error(`Cloud API request failed: ${response.status} ${response.statusText}`);
|
|
34
|
+
}
|
|
35
|
+
const json = await response.json();
|
|
36
|
+
if (json.errors) {
|
|
37
|
+
const errorMessage = json.errors[0]?.message || 'Unknown cloud API error';
|
|
38
|
+
throw new Error(`Cloud API error: ${errorMessage}`);
|
|
39
|
+
}
|
|
40
|
+
const projects = json.data?.users?.user?.cms?.projects?.items;
|
|
41
|
+
if (!projects) {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
return projects;
|
|
45
|
+
}
|
|
46
|
+
export async function getUserInfo(accessToken) {
|
|
47
|
+
const response = await fetch(CLOUD_API_URL, {
|
|
48
|
+
method: 'POST',
|
|
49
|
+
headers: {
|
|
50
|
+
'Content-Type': 'application/json',
|
|
51
|
+
Authorization: accessToken,
|
|
52
|
+
},
|
|
53
|
+
body: JSON.stringify({
|
|
54
|
+
query: `
|
|
55
|
+
query GetUserInfo {
|
|
56
|
+
users {
|
|
57
|
+
user {
|
|
58
|
+
me {
|
|
59
|
+
username
|
|
60
|
+
fullName
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
`,
|
|
66
|
+
}),
|
|
67
|
+
});
|
|
68
|
+
if (!response.ok) {
|
|
69
|
+
throw new Error(`Cloud API request failed: ${response.status} ${response.statusText}`);
|
|
70
|
+
}
|
|
71
|
+
const json = await response.json();
|
|
72
|
+
if (json.errors) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
return json.data?.users?.user?.me ?? null;
|
|
76
|
+
}
|
|
77
|
+
export async function verifyAccessToken(accessToken) {
|
|
78
|
+
try {
|
|
79
|
+
const userInfo = await getUserInfo(accessToken);
|
|
80
|
+
return userInfo !== null;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/auth/api.ts"],"names":[],"mappings":"AAKA,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,sCAAsC,CAAC;AAqB5F,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB;IACnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;QAC1C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,WAAW;SAC3B;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE;;;;;;;;;;;;;;;;;;;OAmBN;SACF,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,yBAAyB,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC;IAE9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,QAA0B,CAAC;AACpC,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB;IACnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;QAC1C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,WAAW;SAC3B;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE;;;;;;;;;;;OAWN;SACF,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC;AAC5C,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IACzD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;QAChD,OAAO,QAAQ,KAAK,IAAI,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface AuthConfig {
|
|
2
|
+
email?: string;
|
|
3
|
+
accessToken?: string;
|
|
4
|
+
refreshToken?: string;
|
|
5
|
+
lastRefresh?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface CloudAuth {
|
|
8
|
+
email?: string;
|
|
9
|
+
accessToken: string;
|
|
10
|
+
refreshToken?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ProjectAuth {
|
|
13
|
+
projectName: string;
|
|
14
|
+
host: string;
|
|
15
|
+
adminToken: string;
|
|
16
|
+
}
|
|
17
|
+
export interface FullAuthConfig extends AuthConfig {
|
|
18
|
+
projects?: Record<string, ProjectAuth>;
|
|
19
|
+
}
|
|
20
|
+
export declare function readAuthConfig(): Promise<FullAuthConfig>;
|
|
21
|
+
export declare function writeAuthConfig(config: FullAuthConfig): Promise<void>;
|
|
22
|
+
export declare function isLoggedIn(): Promise<boolean>;
|
|
23
|
+
export declare function getCurrentUser(): Promise<{
|
|
24
|
+
email: string;
|
|
25
|
+
} | null>;
|
|
26
|
+
export declare function saveLogin(email: string, accessToken: string, refreshToken?: string): Promise<void>;
|
|
27
|
+
export declare function saveCloudAuth(cloudAuth: CloudAuth): Promise<void>;
|
|
28
|
+
export declare function getCloudAuth(): Promise<CloudAuth | null>;
|
|
29
|
+
export declare function saveProjectAuth(project: ProjectAuth): Promise<void>;
|
|
30
|
+
export declare function getProjectAuth(projectName: string): Promise<ProjectAuth | null>;
|
|
31
|
+
export declare function clearAuth(): Promise<void>;
|
|
32
|
+
export declare function getConfigPath(): string;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { promises as fs } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
const CONFIG_DIR = join(homedir(), '.husar');
|
|
5
|
+
const CONFIG_FILE = join(CONFIG_DIR, 'config.json');
|
|
6
|
+
const DIR_MODE = 0o700;
|
|
7
|
+
const FILE_MODE = 0o600;
|
|
8
|
+
async function ensureConfigDir() {
|
|
9
|
+
try {
|
|
10
|
+
await fs.mkdir(CONFIG_DIR, { recursive: true, mode: DIR_MODE });
|
|
11
|
+
}
|
|
12
|
+
catch (err) {
|
|
13
|
+
try {
|
|
14
|
+
await fs.chmod(CONFIG_DIR, DIR_MODE);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export async function readAuthConfig() {
|
|
21
|
+
try {
|
|
22
|
+
await ensureConfigDir();
|
|
23
|
+
const content = await fs.readFile(CONFIG_FILE, 'utf-8');
|
|
24
|
+
return JSON.parse(content);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return {};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export async function writeAuthConfig(config) {
|
|
31
|
+
await ensureConfigDir();
|
|
32
|
+
await fs.writeFile(CONFIG_FILE, JSON.stringify(config, null, 2), { encoding: 'utf-8', mode: FILE_MODE });
|
|
33
|
+
try {
|
|
34
|
+
await fs.chmod(CONFIG_FILE, FILE_MODE);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export async function isLoggedIn() {
|
|
40
|
+
const config = await readAuthConfig();
|
|
41
|
+
return !!(config.accessToken && config.email);
|
|
42
|
+
}
|
|
43
|
+
export async function getCurrentUser() {
|
|
44
|
+
const config = await readAuthConfig();
|
|
45
|
+
if (!config.accessToken || !config.email) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
return { email: config.email };
|
|
49
|
+
}
|
|
50
|
+
export async function saveLogin(email, accessToken, refreshToken) {
|
|
51
|
+
const config = await readAuthConfig();
|
|
52
|
+
config.email = email;
|
|
53
|
+
config.accessToken = accessToken;
|
|
54
|
+
config.refreshToken = refreshToken;
|
|
55
|
+
config.lastRefresh = Date.now();
|
|
56
|
+
await writeAuthConfig(config);
|
|
57
|
+
}
|
|
58
|
+
export async function saveCloudAuth(cloudAuth) {
|
|
59
|
+
const config = await readAuthConfig();
|
|
60
|
+
config.email = cloudAuth.email;
|
|
61
|
+
config.accessToken = cloudAuth.accessToken;
|
|
62
|
+
config.refreshToken = cloudAuth.refreshToken;
|
|
63
|
+
config.lastRefresh = Date.now();
|
|
64
|
+
await writeAuthConfig(config);
|
|
65
|
+
}
|
|
66
|
+
export async function getCloudAuth() {
|
|
67
|
+
const config = await readAuthConfig();
|
|
68
|
+
if (!config.accessToken) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
email: config.email,
|
|
73
|
+
accessToken: config.accessToken,
|
|
74
|
+
refreshToken: config.refreshToken,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export async function saveProjectAuth(project) {
|
|
78
|
+
const config = await readAuthConfig();
|
|
79
|
+
if (!config.projects) {
|
|
80
|
+
config.projects = {};
|
|
81
|
+
}
|
|
82
|
+
config.projects[project.projectName] = project;
|
|
83
|
+
await writeAuthConfig(config);
|
|
84
|
+
}
|
|
85
|
+
export async function getProjectAuth(projectName) {
|
|
86
|
+
const config = await readAuthConfig();
|
|
87
|
+
return config.projects?.[projectName] ?? null;
|
|
88
|
+
}
|
|
89
|
+
export async function clearAuth() {
|
|
90
|
+
await writeAuthConfig({});
|
|
91
|
+
}
|
|
92
|
+
export function getConfigPath() {
|
|
93
|
+
return CONFIG_FILE;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/auth/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ProjectAuth } from './config.js';
|
|
2
|
+
export interface CloudLoginResult {
|
|
3
|
+
success: boolean;
|
|
4
|
+
email?: string;
|
|
5
|
+
accessToken?: string;
|
|
6
|
+
error?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface PanelLoginResult {
|
|
9
|
+
success: boolean;
|
|
10
|
+
project?: ProjectAuth;
|
|
11
|
+
error?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface LoginResult {
|
|
14
|
+
success: boolean;
|
|
15
|
+
email?: string;
|
|
16
|
+
project?: ProjectAuth;
|
|
17
|
+
error?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function startCloudLoginFlow(options?: {
|
|
20
|
+
port?: number;
|
|
21
|
+
timeout?: number;
|
|
22
|
+
}): Promise<CloudLoginResult>;
|
|
23
|
+
export declare function startPanelLoginFlow(panelHost: string, options?: {
|
|
24
|
+
port?: number;
|
|
25
|
+
timeout?: number;
|
|
26
|
+
}): Promise<PanelLoginResult>;
|
|
27
|
+
export declare function startLoginFlow(options?: {
|
|
28
|
+
port?: number;
|
|
29
|
+
timeout?: number;
|
|
30
|
+
}): Promise<LoginResult>;
|