@arinova-ai/cli 0.0.25 → 0.0.26-staging.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/dist/api.d.ts +1 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +6 -11
- package/dist/api.js.map +1 -1
- package/dist/client.d.ts +7 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +19 -19
- package/dist/client.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +110 -36
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/profile.d.ts +3 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +63 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/wiki.d.ts.map +1 -1
- package/dist/commands/wiki.js +5 -3
- package/dist/commands/wiki.js.map +1 -1
- package/dist/config.d.ts +35 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +90 -1
- package/dist/config.js.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/api.d.ts
CHANGED
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAW5F;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBnB;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE1C"}
|
package/dist/api.js
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveApiKey, getEndpoint } from "./config.js";
|
|
2
2
|
export function getOpts(cmd) {
|
|
3
3
|
const opts = cmd.optsWithGlobals();
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
if (!token) {
|
|
10
|
-
console.error("Error: No token provided. Use --token flag or run: arinova auth set-key <key>");
|
|
11
|
-
process.exit(1);
|
|
12
|
-
}
|
|
4
|
+
const { apiKey, profileName } = resolveApiKey({
|
|
5
|
+
token: opts.token,
|
|
6
|
+
profile: opts.profile,
|
|
7
|
+
});
|
|
13
8
|
const apiUrl = opts.apiUrl ?? getEndpoint();
|
|
14
|
-
return { token, apiUrl };
|
|
9
|
+
return { token: apiKey, apiUrl, profileName };
|
|
15
10
|
}
|
|
16
11
|
export async function apiCall(opts) {
|
|
17
12
|
const headers = {
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;IAEnC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC;QAC5C,KAAK,EAAE,IAAI,CAAC,KAA2B;QACvC,OAAO,EAAE,IAAI,CAAC,OAA6B;KAC5C,CAAC,CAAC;IAEH,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,WAAW,EAAE,CAAC;IAExD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAK7B;IACC,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;KACtC,CAAC;IACF,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAE3D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAE9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAa;IAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/client.d.ts
CHANGED
|
@@ -3,11 +3,11 @@ export declare class ApiError extends Error {
|
|
|
3
3
|
body: unknown;
|
|
4
4
|
constructor(status: number, body: unknown);
|
|
5
5
|
}
|
|
6
|
-
export declare function get(path: string): Promise<unknown>;
|
|
7
|
-
export declare function post(path: string, body?: unknown): Promise<unknown>;
|
|
8
|
-
export declare function patch(path: string, body?: unknown): Promise<unknown>;
|
|
9
|
-
export declare function put(path: string, body?: unknown): Promise<unknown>;
|
|
10
|
-
export declare function del(path: string): Promise<unknown>;
|
|
11
|
-
export declare function upload(path: string, filePath: string, fieldName?: string): Promise<unknown>;
|
|
12
|
-
export declare function uploadMultipart(path: string, fields: Record<string, string | Blob>, method?: "POST" | "PUT"): Promise<unknown>;
|
|
6
|
+
export declare function get(path: string, apiKey?: string): Promise<unknown>;
|
|
7
|
+
export declare function post(path: string, body?: unknown, apiKey?: string): Promise<unknown>;
|
|
8
|
+
export declare function patch(path: string, body?: unknown, apiKey?: string): Promise<unknown>;
|
|
9
|
+
export declare function put(path: string, body?: unknown, apiKey?: string): Promise<unknown>;
|
|
10
|
+
export declare function del(path: string, apiKey?: string): Promise<unknown>;
|
|
11
|
+
export declare function upload(path: string, filePath: string, fieldName?: string, apiKey?: string): Promise<unknown>;
|
|
12
|
+
export declare function uploadMultipart(path: string, fields: Record<string, string | Blob>, method?: "POST" | "PUT", apiKey?: string): Promise<unknown>;
|
|
13
13
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,qBAAa,QAAS,SAAQ,KAAK;IAExB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,OAAO;gBADb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO;CAIvB;AA+BD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,qBAAa,QAAS,SAAQ,KAAK;IAExB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,OAAO;gBADb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO;CAIvB;AA+BD,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGzE;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1F;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3F;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzF;AAED,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGzE;AAED,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAAe,EAC1B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EACrC,MAAM,GAAE,MAAM,GAAG,KAAc,EAC/B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAiBlB"}
|
package/dist/client.js
CHANGED
|
@@ -10,10 +10,10 @@ export class ApiError extends Error {
|
|
|
10
10
|
this.body = body;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
function headers() {
|
|
14
|
-
const key = getApiKey();
|
|
13
|
+
function headers(apiKey) {
|
|
14
|
+
const key = apiKey ?? getApiKey();
|
|
15
15
|
if (!key) {
|
|
16
|
-
throw new Error("No API key configured. Run: arinova auth set-
|
|
16
|
+
throw new Error("No API key configured. Run: arinova auth login or arinova --profile <name> auth set-token <key>");
|
|
17
17
|
}
|
|
18
18
|
return {
|
|
19
19
|
Authorization: `Bearer ${key}`,
|
|
@@ -37,42 +37,42 @@ async function handleResponse(res) {
|
|
|
37
37
|
}
|
|
38
38
|
return parsed;
|
|
39
39
|
}
|
|
40
|
-
export async function get(path) {
|
|
41
|
-
const res = await fetch(url(path), { method: "GET", headers: headers() });
|
|
40
|
+
export async function get(path, apiKey) {
|
|
41
|
+
const res = await fetch(url(path), { method: "GET", headers: headers(apiKey) });
|
|
42
42
|
return handleResponse(res);
|
|
43
43
|
}
|
|
44
|
-
export async function post(path, body) {
|
|
44
|
+
export async function post(path, body, apiKey) {
|
|
45
45
|
const res = await fetch(url(path), {
|
|
46
46
|
method: "POST",
|
|
47
|
-
headers: headers(),
|
|
47
|
+
headers: headers(apiKey),
|
|
48
48
|
body: body != null ? JSON.stringify(body) : undefined,
|
|
49
49
|
});
|
|
50
50
|
return handleResponse(res);
|
|
51
51
|
}
|
|
52
|
-
export async function patch(path, body) {
|
|
52
|
+
export async function patch(path, body, apiKey) {
|
|
53
53
|
const res = await fetch(url(path), {
|
|
54
54
|
method: "PATCH",
|
|
55
|
-
headers: headers(),
|
|
55
|
+
headers: headers(apiKey),
|
|
56
56
|
body: body != null ? JSON.stringify(body) : undefined,
|
|
57
57
|
});
|
|
58
58
|
return handleResponse(res);
|
|
59
59
|
}
|
|
60
|
-
export async function put(path, body) {
|
|
60
|
+
export async function put(path, body, apiKey) {
|
|
61
61
|
const res = await fetch(url(path), {
|
|
62
62
|
method: "PUT",
|
|
63
|
-
headers: headers(),
|
|
63
|
+
headers: headers(apiKey),
|
|
64
64
|
body: body != null ? JSON.stringify(body) : undefined,
|
|
65
65
|
});
|
|
66
66
|
return handleResponse(res);
|
|
67
67
|
}
|
|
68
|
-
export async function del(path) {
|
|
69
|
-
const res = await fetch(url(path), { method: "DELETE", headers: headers() });
|
|
68
|
+
export async function del(path, apiKey) {
|
|
69
|
+
const res = await fetch(url(path), { method: "DELETE", headers: headers(apiKey) });
|
|
70
70
|
return handleResponse(res);
|
|
71
71
|
}
|
|
72
|
-
export async function upload(path, filePath, fieldName = "file") {
|
|
73
|
-
const key = getApiKey();
|
|
72
|
+
export async function upload(path, filePath, fieldName = "file", apiKey) {
|
|
73
|
+
const key = apiKey ?? getApiKey();
|
|
74
74
|
if (!key) {
|
|
75
|
-
throw new Error("No API key configured. Run: arinova auth
|
|
75
|
+
throw new Error("No API key configured. Run: arinova auth login");
|
|
76
76
|
}
|
|
77
77
|
const fileData = readFileSync(filePath);
|
|
78
78
|
const blob = new Blob([fileData]);
|
|
@@ -85,10 +85,10 @@ export async function upload(path, filePath, fieldName = "file") {
|
|
|
85
85
|
});
|
|
86
86
|
return handleResponse(res);
|
|
87
87
|
}
|
|
88
|
-
export async function uploadMultipart(path, fields, method = "POST") {
|
|
89
|
-
const key = getApiKey();
|
|
88
|
+
export async function uploadMultipart(path, fields, method = "POST", apiKey) {
|
|
89
|
+
const key = apiKey ?? getApiKey();
|
|
90
90
|
if (!key) {
|
|
91
|
-
throw new Error("No API key configured. Run: arinova auth
|
|
91
|
+
throw new Error("No API key configured. Run: arinova auth login");
|
|
92
92
|
}
|
|
93
93
|
const form = new FormData();
|
|
94
94
|
for (const [k, v] of Object.entries(fields)) {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,OAAO,QAAS,SAAQ,KAAK;IAExB;IACA;IAFT,YACS,MAAc,EACd,IAAa;QAEpB,KAAK,CAAC,aAAa,MAAM,KAAK,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAHjF,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAS;IAGtB,CAAC;CACF;AAED,SAAS,OAAO;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuOnD"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createServer } from "node:http";
|
|
2
|
-
import { loadConfig, saveConfig,
|
|
2
|
+
import { loadConfig, saveConfig, setProfile, getEndpoint, getEnvironmentLabel, resolveApiKey, resolveProfileName, getProfile, listProfiles } from "../config.js";
|
|
3
3
|
import { printResult, printError, printSuccess } from "../output.js";
|
|
4
4
|
export function registerAuth(program) {
|
|
5
5
|
const auth = program.command("auth").description("Authentication commands");
|
|
6
6
|
auth
|
|
7
7
|
.command("login")
|
|
8
|
-
.description("Log in via browser (
|
|
8
|
+
.description("Log in via browser (creates a user profile with your username)")
|
|
9
9
|
.option("-p, --port <port>", "Local callback port", "9876")
|
|
10
10
|
.action(async function (opts) {
|
|
11
11
|
const port = parseInt(opts.port, 10);
|
|
@@ -54,10 +54,23 @@ export function registerAuth(program) {
|
|
|
54
54
|
});
|
|
55
55
|
try {
|
|
56
56
|
const key = await keyPromise;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
// Fetch username to use as profile name
|
|
58
|
+
let profileName = "user";
|
|
59
|
+
try {
|
|
60
|
+
const res = await fetch(`${apiEndpoint}/api/v1/creator/api-keys/whoami`, {
|
|
61
|
+
headers: { Authorization: `Bearer ${key}` },
|
|
62
|
+
});
|
|
63
|
+
if (res.ok) {
|
|
64
|
+
const data = await res.json();
|
|
65
|
+
const name = (data.username ?? data.name ?? "");
|
|
66
|
+
if (name)
|
|
67
|
+
profileName = name.toLowerCase().replace(/\s+/g, "-");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch { /* use default name */ }
|
|
71
|
+
setProfile(profileName, { type: "user", apiKey: key });
|
|
72
|
+
printSuccess(`Logged in! Profile '${profileName}' created (user, key: ${key.slice(0, 12)}...)`);
|
|
73
|
+
console.log(`\nTo use: arinova --profile ${profileName} <command>`);
|
|
61
74
|
}
|
|
62
75
|
catch (err) {
|
|
63
76
|
printError(err);
|
|
@@ -65,50 +78,108 @@ export function registerAuth(program) {
|
|
|
65
78
|
});
|
|
66
79
|
auth
|
|
67
80
|
.command("logout")
|
|
68
|
-
.description("Remove
|
|
81
|
+
.description("Remove the current profile's API key")
|
|
69
82
|
.action(() => {
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
83
|
+
const profileFlag = program.optsWithGlobals().profile;
|
|
84
|
+
try {
|
|
85
|
+
const name = resolveProfileName(profileFlag);
|
|
86
|
+
const profile = getProfile(name);
|
|
87
|
+
if (!profile) {
|
|
88
|
+
printError(new Error(`Profile '${name}' not found.`));
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// Remove the profile entirely
|
|
92
|
+
const { removeProfile } = require("../config.js");
|
|
93
|
+
removeProfile(name);
|
|
94
|
+
printSuccess(`Profile '${name}' removed.`);
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
printError(new Error("No active profile to log out from."));
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
auth
|
|
101
|
+
.command("set-token <key>")
|
|
102
|
+
.description("Set a bot token for the current profile (requires --profile)")
|
|
103
|
+
.action((key) => {
|
|
104
|
+
const profileFlag = program.optsWithGlobals().profile;
|
|
105
|
+
if (!profileFlag) {
|
|
106
|
+
printError(new Error("Must specify --profile <name> when setting a bot token.\nExample: arinova --profile linda auth set-token ari_xxx"));
|
|
73
107
|
return;
|
|
74
108
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
109
|
+
if (!key.startsWith("ari_")) {
|
|
110
|
+
printError(new Error("Invalid key format. Expected key starting with ari_"));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const name = profileFlag;
|
|
114
|
+
setProfile(name, { type: "bot", apiKey: key });
|
|
115
|
+
printSuccess(`Bot profile '${name}' saved (key: ${key.slice(0, 12)}...)`);
|
|
116
|
+
console.log(`\nTo use: arinova --profile ${name} <command>`);
|
|
78
117
|
});
|
|
118
|
+
// Keep set-key as hidden alias for backwards compat
|
|
79
119
|
auth
|
|
80
|
-
.command("set-key <key>")
|
|
81
|
-
.description("
|
|
120
|
+
.command("set-key <key>", { hidden: true })
|
|
121
|
+
.description("(deprecated) Use 'auth set-token' instead")
|
|
82
122
|
.action((key) => {
|
|
123
|
+
console.error("Warning: 'set-key' is deprecated. Use 'arinova --profile <name> auth set-token <key>' instead.\n");
|
|
124
|
+
const profileFlag = program.optsWithGlobals().profile;
|
|
83
125
|
if (!key.startsWith("ari_")) {
|
|
84
126
|
printError(new Error("Invalid key format. Expected key starting with ari_"));
|
|
85
127
|
return;
|
|
86
128
|
}
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
printSuccess(`API key saved (prefix: ${key.slice(0, 12)}...)`);
|
|
129
|
+
const name = profileFlag ?? process.env.ARINOVA_PROFILE ?? "default";
|
|
130
|
+
setProfile(name, { type: "bot", apiKey: key });
|
|
131
|
+
printSuccess(`Profile '${name}' saved (key: ${key.slice(0, 12)}...)`);
|
|
91
132
|
});
|
|
92
133
|
auth
|
|
93
134
|
.command("whoami")
|
|
94
|
-
.description("Show current
|
|
135
|
+
.description("Show current identity and environment")
|
|
95
136
|
.action(async () => {
|
|
96
137
|
try {
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
138
|
+
const profileFlag = program.optsWithGlobals().profile;
|
|
139
|
+
const tokenFlag = program.optsWithGlobals().token;
|
|
140
|
+
const { apiKey, profileName, source } = resolveApiKey({ token: tokenFlag, profile: profileFlag });
|
|
141
|
+
const env = getEnvironmentLabel();
|
|
142
|
+
const endpoint = getEndpoint();
|
|
143
|
+
const identity = {
|
|
144
|
+
profile: profileName,
|
|
145
|
+
source,
|
|
146
|
+
environment: env,
|
|
147
|
+
endpoint,
|
|
148
|
+
keyPrefix: `${apiKey.slice(0, 12)}...`,
|
|
149
|
+
};
|
|
150
|
+
// Try to resolve actual identity from server
|
|
151
|
+
// Try bot endpoint first
|
|
152
|
+
try {
|
|
153
|
+
const botRes = await fetch(`${endpoint}/api/agent/me`, {
|
|
154
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
155
|
+
});
|
|
156
|
+
if (botRes.ok) {
|
|
157
|
+
const bot = await botRes.json();
|
|
158
|
+
identity.identityType = "bot";
|
|
159
|
+
identity.agentName = bot.name;
|
|
160
|
+
identity.agentId = bot.id;
|
|
161
|
+
printResult(identity);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
101
164
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
165
|
+
catch { /* fall through */ }
|
|
166
|
+
// Try user endpoint
|
|
167
|
+
try {
|
|
168
|
+
const userRes = await fetch(`${endpoint}/api/v1/creator/api-keys/whoami`, {
|
|
169
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
170
|
+
});
|
|
171
|
+
if (userRes.ok) {
|
|
172
|
+
const user = await userRes.json();
|
|
173
|
+
identity.identityType = "user";
|
|
174
|
+
identity.userName = user.name ?? user.username;
|
|
175
|
+
identity.userId = user.id ?? user.userId;
|
|
176
|
+
printResult(identity);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
109
179
|
}
|
|
110
|
-
|
|
111
|
-
|
|
180
|
+
catch { /* fall through */ }
|
|
181
|
+
identity.status = "unauthorized — token may be expired or revoked";
|
|
182
|
+
printResult(identity);
|
|
112
183
|
}
|
|
113
184
|
catch (err) {
|
|
114
185
|
printError(err);
|
|
@@ -143,10 +214,13 @@ export function registerAuth(program) {
|
|
|
143
214
|
.command("show")
|
|
144
215
|
.description("Show current configuration")
|
|
145
216
|
.action(() => {
|
|
146
|
-
const
|
|
217
|
+
const profiles = listProfiles();
|
|
147
218
|
printResult({
|
|
148
|
-
|
|
149
|
-
|
|
219
|
+
environment: getEnvironmentLabel(),
|
|
220
|
+
endpoint: getEndpoint(),
|
|
221
|
+
profiles: profiles.length > 0
|
|
222
|
+
? Object.fromEntries(profiles.map((p) => [p.name, { type: p.profile.type, key: `${p.profile.apiKey.slice(0, 12)}...` }]))
|
|
223
|
+
: "(none)",
|
|
150
224
|
});
|
|
151
225
|
});
|
|
152
226
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAA6C,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmEtD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { listProfiles, removeProfile, getEndpoint, getEnvironmentLabel, getProfile } from "../config.js";
|
|
2
|
+
import { printResult, printError, printSuccess, table } from "../output.js";
|
|
3
|
+
export function registerProfile(program) {
|
|
4
|
+
const profile = program.command("profile").description("Profile management — manage identities (user/bot)");
|
|
5
|
+
profile
|
|
6
|
+
.command("list")
|
|
7
|
+
.description("List all configured profiles")
|
|
8
|
+
.action(() => {
|
|
9
|
+
const profiles = listProfiles();
|
|
10
|
+
if (profiles.length === 0) {
|
|
11
|
+
console.log("No profiles configured.");
|
|
12
|
+
console.log(" User: arinova auth login");
|
|
13
|
+
console.log(" Bot: arinova --profile <name> auth set-token <key>");
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
table(profiles.map((p) => ({
|
|
17
|
+
name: p.name,
|
|
18
|
+
type: p.profile.type,
|
|
19
|
+
key: `${p.profile.apiKey.slice(0, 12)}...`,
|
|
20
|
+
})), [
|
|
21
|
+
{ key: "name", label: "Profile" },
|
|
22
|
+
{ key: "type", label: "Type" },
|
|
23
|
+
{ key: "key", label: "API Key" },
|
|
24
|
+
]);
|
|
25
|
+
console.log(`\nEnvironment: ${getEnvironmentLabel()}`);
|
|
26
|
+
console.log(`Endpoint: ${getEndpoint()}`);
|
|
27
|
+
});
|
|
28
|
+
profile
|
|
29
|
+
.command("remove <name>")
|
|
30
|
+
.description("Remove a profile")
|
|
31
|
+
.action((name) => {
|
|
32
|
+
if (removeProfile(name)) {
|
|
33
|
+
printSuccess(`Profile '${name}' removed.`);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
printError(new Error(`Profile '${name}' not found.`));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
profile
|
|
40
|
+
.command("show")
|
|
41
|
+
.description("Show the active profile (from --profile)")
|
|
42
|
+
.action(() => {
|
|
43
|
+
const profileFlag = program.optsWithGlobals().profile;
|
|
44
|
+
if (!profileFlag) {
|
|
45
|
+
printError(new Error("--profile <name> is required."));
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const activeName = profileFlag;
|
|
49
|
+
const match = getProfile(activeName);
|
|
50
|
+
if (!match) {
|
|
51
|
+
printError(new Error(`Profile '${activeName}' not found. Run 'arinova profile list'.`));
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
printResult({
|
|
55
|
+
profile: activeName,
|
|
56
|
+
type: match.type,
|
|
57
|
+
keyPrefix: `${match.apiKey.slice(0, 12)}...`,
|
|
58
|
+
environment: getEnvironmentLabel(),
|
|
59
|
+
endpoint: getEndpoint(),
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiki.d.ts","sourceRoot":"","sources":["../../src/commands/wiki.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"wiki.d.ts","sourceRoot":"","sources":["../../src/commands/wiki.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6D3D"}
|
package/dist/commands/wiki.js
CHANGED
|
@@ -2,12 +2,14 @@ import { getOpts, apiCall, output } from "../api.js";
|
|
|
2
2
|
export function registerWikiCommands(program) {
|
|
3
3
|
const wiki = program.command("wiki").description("Wiki page commands");
|
|
4
4
|
wiki.command("list")
|
|
5
|
-
.
|
|
5
|
+
.option("--conversation-id <id>", "Conversation ID (omit to list all)")
|
|
6
6
|
.option("--search <query>", "Search wiki pages")
|
|
7
|
-
.description("List wiki pages
|
|
7
|
+
.description("List wiki pages (all or by conversation)")
|
|
8
8
|
.action(async (opts) => {
|
|
9
9
|
const { token, apiUrl } = getOpts(wiki);
|
|
10
|
-
const params = new URLSearchParams(
|
|
10
|
+
const params = new URLSearchParams();
|
|
11
|
+
if (opts.conversationId)
|
|
12
|
+
params.set("conversationId", opts.conversationId);
|
|
11
13
|
if (opts.search)
|
|
12
14
|
params.set("search", opts.search);
|
|
13
15
|
output(await apiCall({ method: "GET", url: `${apiUrl}/api/v1/wiki?${params.toString()}`, token }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiki.js","sourceRoot":"","sources":["../../src/commands/wiki.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAEvE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACjB,
|
|
1
|
+
{"version":3,"file":"wiki.js","sourceRoot":"","sources":["../../src/commands/wiki.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,11 +1,45 @@
|
|
|
1
|
+
export type TokenType = "user" | "bot";
|
|
2
|
+
export interface Profile {
|
|
3
|
+
type: TokenType;
|
|
4
|
+
apiKey: string;
|
|
5
|
+
}
|
|
1
6
|
export interface CliConfig {
|
|
2
|
-
|
|
7
|
+
profiles?: Record<string, Profile>;
|
|
3
8
|
endpoint?: string;
|
|
9
|
+
apiKey?: string;
|
|
10
|
+
tokenType?: TokenType;
|
|
4
11
|
}
|
|
5
12
|
export declare function loadConfig(): CliConfig;
|
|
6
13
|
export declare function saveConfig(config: CliConfig): void;
|
|
14
|
+
/** Migrate legacy config (single apiKey) to profile-based config */
|
|
15
|
+
export declare function migrateConfigIfNeeded(): void;
|
|
16
|
+
export declare function getProfile(name: string): Profile | undefined;
|
|
17
|
+
export declare function setProfile(name: string, profile: Profile): void;
|
|
18
|
+
export declare function removeProfile(name: string): boolean;
|
|
19
|
+
export declare function listProfiles(): {
|
|
20
|
+
name: string;
|
|
21
|
+
profile: Profile;
|
|
22
|
+
}[];
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the active profile name.
|
|
25
|
+
* Only accepts --profile flag. No env var, no default.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveProfileName(flagValue?: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the API key for the active profile.
|
|
30
|
+
* Also accepts --token flag as highest priority override.
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveApiKey(opts: {
|
|
33
|
+
token?: string;
|
|
34
|
+
profile?: string;
|
|
35
|
+
}): {
|
|
36
|
+
apiKey: string;
|
|
37
|
+
profileName: string;
|
|
38
|
+
source: string;
|
|
39
|
+
};
|
|
7
40
|
/** Detect staging from package version (contains "-staging") */
|
|
8
41
|
export declare function isStaging(): boolean;
|
|
9
42
|
export declare function getEndpoint(): string;
|
|
43
|
+
export declare function getEnvironmentLabel(): string;
|
|
10
44
|
export declare function getApiKey(): string | undefined;
|
|
11
45
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAWD,wBAAgB,UAAU,IAAI,SAAS,CAOtC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAIlD;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,IAAI,IAAI,CAe5C;AAID,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAG5D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAK/D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMnD;AAED,wBAAgB,YAAY,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAAE,CAOnE;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAajI;AAOD,gEAAgE;AAChE,wBAAgB,SAAS,IAAI,OAAO,CAQnC;AAED,wBAAgB,WAAW,IAAI,MAAM,CAQpC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAID,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAS9C"}
|
package/dist/config.js
CHANGED
|
@@ -22,6 +22,82 @@ export function saveConfig(config) {
|
|
|
22
22
|
writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), { encoding: "utf-8", mode: 0o600 });
|
|
23
23
|
chmodSync(CONFIG_FILE, 0o600);
|
|
24
24
|
}
|
|
25
|
+
/** Migrate legacy config (single apiKey) to profile-based config */
|
|
26
|
+
export function migrateConfigIfNeeded() {
|
|
27
|
+
const cfg = loadConfig();
|
|
28
|
+
if (cfg.apiKey && !cfg.profiles) {
|
|
29
|
+
const name = "migrated";
|
|
30
|
+
cfg.profiles = {
|
|
31
|
+
[name]: {
|
|
32
|
+
type: cfg.tokenType ?? "user",
|
|
33
|
+
apiKey: cfg.apiKey,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
delete cfg.apiKey;
|
|
37
|
+
delete cfg.tokenType;
|
|
38
|
+
saveConfig(cfg);
|
|
39
|
+
console.error(`Note: Legacy config migrated to profile 'migrated'. Use --profile migrated or re-setup with 'arinova auth login'.`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// --- Profile helpers ---
|
|
43
|
+
export function getProfile(name) {
|
|
44
|
+
const cfg = loadConfig();
|
|
45
|
+
return cfg.profiles?.[name];
|
|
46
|
+
}
|
|
47
|
+
export function setProfile(name, profile) {
|
|
48
|
+
const cfg = loadConfig();
|
|
49
|
+
if (!cfg.profiles)
|
|
50
|
+
cfg.profiles = {};
|
|
51
|
+
cfg.profiles[name] = profile;
|
|
52
|
+
saveConfig(cfg);
|
|
53
|
+
}
|
|
54
|
+
export function removeProfile(name) {
|
|
55
|
+
const cfg = loadConfig();
|
|
56
|
+
if (!cfg.profiles?.[name])
|
|
57
|
+
return false;
|
|
58
|
+
delete cfg.profiles[name];
|
|
59
|
+
saveConfig(cfg);
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
export function listProfiles() {
|
|
63
|
+
const cfg = loadConfig();
|
|
64
|
+
if (!cfg.profiles)
|
|
65
|
+
return [];
|
|
66
|
+
return Object.entries(cfg.profiles).map(([name, profile]) => ({
|
|
67
|
+
name,
|
|
68
|
+
profile,
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
// --- Token resolution ---
|
|
72
|
+
/**
|
|
73
|
+
* Resolve the active profile name.
|
|
74
|
+
* Only accepts --profile flag. No env var, no default.
|
|
75
|
+
*/
|
|
76
|
+
export function resolveProfileName(flagValue) {
|
|
77
|
+
if (flagValue)
|
|
78
|
+
return flagValue;
|
|
79
|
+
console.error("Error: --profile <name> is required.");
|
|
80
|
+
console.error(" Run 'arinova profile list' to see available profiles.");
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Resolve the API key for the active profile.
|
|
85
|
+
* Also accepts --token flag as highest priority override.
|
|
86
|
+
*/
|
|
87
|
+
export function resolveApiKey(opts) {
|
|
88
|
+
// --token flag overrides everything
|
|
89
|
+
if (opts.token) {
|
|
90
|
+
return { apiKey: opts.token, profileName: "(--token override)", source: "flag" };
|
|
91
|
+
}
|
|
92
|
+
const name = resolveProfileName(opts.profile);
|
|
93
|
+
const profile = getProfile(name);
|
|
94
|
+
if (!profile) {
|
|
95
|
+
console.error(`Error: Profile '${name}' not found. Run 'arinova profile list' to see available profiles.`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
return { apiKey: profile.apiKey, profileName: name, source: "profile" };
|
|
99
|
+
}
|
|
100
|
+
// --- Endpoint ---
|
|
25
101
|
const PRODUCTION_ENDPOINT = "https://api.chat.arinova.ai";
|
|
26
102
|
const STAGING_ENDPOINT = "https://api.chat-staging.arinova.ai";
|
|
27
103
|
/** Detect staging from package version (contains "-staging") */
|
|
@@ -45,7 +121,20 @@ export function getEndpoint() {
|
|
|
45
121
|
return cfg.endpoint;
|
|
46
122
|
return isStaging() ? STAGING_ENDPOINT : PRODUCTION_ENDPOINT;
|
|
47
123
|
}
|
|
124
|
+
export function getEnvironmentLabel() {
|
|
125
|
+
return isStaging() ? "staging" : "production";
|
|
126
|
+
}
|
|
127
|
+
// --- Legacy compat (used by some commands during migration) ---
|
|
48
128
|
export function getApiKey() {
|
|
49
|
-
|
|
129
|
+
// Legacy compat — try old apiKey field, then first profile as fallback
|
|
130
|
+
const cfg = loadConfig();
|
|
131
|
+
if (cfg.apiKey)
|
|
132
|
+
return cfg.apiKey;
|
|
133
|
+
if (cfg.profiles) {
|
|
134
|
+
const first = Object.values(cfg.profiles)[0];
|
|
135
|
+
if (first)
|
|
136
|
+
return first.apiKey;
|
|
137
|
+
}
|
|
138
|
+
return undefined;
|
|
50
139
|
}
|
|
51
140
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { readFileSync } from "node:fs";
|
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import { dirname, join } from "node:path";
|
|
6
6
|
import { setJsonMode } from "./output.js";
|
|
7
|
+
import { migrateConfigIfNeeded } from "./config.js";
|
|
7
8
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
8
9
|
const pkg = JSON.parse(readFileSync(join(__dirname, "../package.json"), "utf-8"));
|
|
9
10
|
import { registerMessageCommands } from "./commands/message.js";
|
|
@@ -30,12 +31,14 @@ import { registerAutoSendCommands } from "./commands/auto-send.js";
|
|
|
30
31
|
import { registerPainterCommands } from "./commands/painter.js";
|
|
31
32
|
import { registerAgentCommands } from "./commands/agent.js";
|
|
32
33
|
import { registerCapsuleCommands } from "./commands/capsule.js";
|
|
34
|
+
import { registerProfile } from "./commands/profile.js";
|
|
33
35
|
const program = new Command();
|
|
34
36
|
program
|
|
35
37
|
.name("arinova")
|
|
36
38
|
.description("Arinova CLI — manage messages, notes, kanban, memory, creator tools, and more")
|
|
37
39
|
.version(pkg.version)
|
|
38
|
-
.option("--token <botToken>", "Bot/API token (ari_...)")
|
|
40
|
+
.option("--token <botToken>", "Bot/API token override (ari_...)")
|
|
41
|
+
.option("--profile <name>", "Profile to use (required for most commands)")
|
|
39
42
|
.option("--api-url <url>", "API endpoint override")
|
|
40
43
|
.option("--json", "Output in JSON format")
|
|
41
44
|
.hook("preAction", (thisCommand) => {
|
|
@@ -43,6 +46,8 @@ program
|
|
|
43
46
|
if (opts.json) {
|
|
44
47
|
setJsonMode(true);
|
|
45
48
|
}
|
|
49
|
+
// Auto-migrate legacy config on first run
|
|
50
|
+
migrateConfigIfNeeded();
|
|
46
51
|
});
|
|
47
52
|
// Existing agent commands (bot token based)
|
|
48
53
|
registerMessageCommands(program);
|
|
@@ -59,6 +64,8 @@ registerAutoSendCommands(program);
|
|
|
59
64
|
registerPainterCommands(program);
|
|
60
65
|
registerAgentCommands(program);
|
|
61
66
|
registerCapsuleCommands(program);
|
|
67
|
+
// Profile management
|
|
68
|
+
registerProfile(program);
|
|
62
69
|
// Creator commands (config-based auth)
|
|
63
70
|
registerAuth(program);
|
|
64
71
|
registerSticker(program);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arinova-ai/cli",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "Arinova CLI
|
|
3
|
+
"version": "0.0.26-staging.0",
|
|
4
|
+
"description": "Arinova CLI — manage messages, notes, kanban, memory, creator tools, and more",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"arinova": "dist/index.js"
|
|
@@ -23,4 +23,4 @@
|
|
|
23
23
|
"typescript": "^5.7.0",
|
|
24
24
|
"vitest": "^3.0.0"
|
|
25
25
|
}
|
|
26
|
-
}
|
|
26
|
+
}
|