@agentscope-ai/platform-cli 1.0.2 → 1.0.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/README.md +3 -5
- package/dist/{chunk-GWGNF3I7.js → chunk-4I5YYR2G.js} +3 -8
- package/dist/chunk-4I5YYR2G.js.map +1 -0
- package/dist/{chunk-YN3EQLE2.js → chunk-IWWTP4LN.js} +3 -8
- package/dist/chunk-IWWTP4LN.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/{credentials-YBXW6FP6.js → credentials-LIUOYT7K.js} +2 -2
- package/dist/{credentials-YM6GIGYX.js → credentials-TT7CW3HF.js} +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-GWGNF3I7.js.map +0 -1
- package/dist/chunk-YN3EQLE2.js.map +0 -1
- /package/dist/{credentials-YBXW6FP6.js.map → credentials-LIUOYT7K.js.map} +0 -0
- /package/dist/{credentials-YM6GIGYX.js.map → credentials-TT7CW3HF.js.map} +0 -0
package/README.md
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
# AgentScope Platform CLI (asp)
|
|
2
2
|
|
|
3
|
-
AgentScope Platform
|
|
3
|
+
AgentScope Platform 命令行工具。默认对接生产环境:`https://platform.agentscope.io`。
|
|
4
4
|
|
|
5
5
|
| 环境 | Platform URL |
|
|
6
6
|
| --- | --- |
|
|
7
|
-
| **
|
|
8
|
-
|
|
9
|
-
> 线上环境 https://platform.agentscope.io 尚未开放。若环境变量或参数指向线上地址,CLI 会自动改用预发 `https://platform-pre.agentscope.io`。
|
|
7
|
+
| **prod**(默认) | https://platform.agentscope.io |
|
|
10
8
|
|
|
11
9
|
## 安装
|
|
12
10
|
|
|
@@ -19,7 +17,7 @@ npm install -g @agentscope-ai/platform-cli
|
|
|
19
17
|
| 变量 | 说明 |
|
|
20
18
|
| --- | --- |
|
|
21
19
|
| `ASP_TOKEN` | 访问令牌 |
|
|
22
|
-
| `ASP_PLATFORM_URL` | 自定义 Platform
|
|
20
|
+
| `ASP_PLATFORM_URL` | 自定义 Platform 地址 |
|
|
23
21
|
| `ASP_CONFIG_DIR` | 凭证目录,默认 `~/.asp` |
|
|
24
22
|
|
|
25
23
|
## 全局选项
|
|
@@ -11,8 +11,7 @@ import { createRequire } from "module";
|
|
|
11
11
|
var require2 = createRequire(import.meta.url);
|
|
12
12
|
var pkg = require2("../package.json");
|
|
13
13
|
var CLI_VERSION = pkg.version;
|
|
14
|
-
var PLATFORM_URL = "https://platform
|
|
15
|
-
var PROD_PLATFORM_URL = "https://platform.agentscope.io";
|
|
14
|
+
var PLATFORM_URL = "https://platform.agentscope.io";
|
|
16
15
|
var DEFAULT_PLATFORM_URL = PLATFORM_URL;
|
|
17
16
|
var PRE_PLATFORM_URL = PLATFORM_URL;
|
|
18
17
|
var CLI_API_PREFIX = "/api/cli/v1";
|
|
@@ -29,11 +28,7 @@ function resolveConfig(opts = {}) {
|
|
|
29
28
|
};
|
|
30
29
|
}
|
|
31
30
|
function resolvePlatformUrl(explicitUrl) {
|
|
32
|
-
|
|
33
|
-
if (platformUrl === PROD_PLATFORM_URL) {
|
|
34
|
-
return DEFAULT_PLATFORM_URL;
|
|
35
|
-
}
|
|
36
|
-
return platformUrl;
|
|
31
|
+
return (explicitUrl ?? process.env.ASP_PLATFORM_URL ?? process.env.PLATFORM_URL ?? DEFAULT_PLATFORM_URL).replace(/\/$/, "");
|
|
37
32
|
}
|
|
38
33
|
function getAspConfigDir() {
|
|
39
34
|
return process.env.ASP_CONFIG_DIR ?? join(homedir(), ".asp");
|
|
@@ -96,4 +91,4 @@ export {
|
|
|
96
91
|
isTokenExpired,
|
|
97
92
|
credentialsFromTokenResponse
|
|
98
93
|
};
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
94
|
+
//# sourceMappingURL=chunk-4I5YYR2G.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/auth/credentials.ts","../src/config.ts","../src/constants.ts"],"sourcesContent":["import { chmod, mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { dirname } from \"node:path\";\nimport { getCredentialsPath } from \"../config.js\";\n\nexport interface StoredCredentials {\n access_token: string;\n refresh_token?: string;\n token_type: string;\n expires_at?: string;\n scope?: string;\n platform_url: string;\n user?: {\n id: string;\n display_name?: string;\n email?: string;\n };\n}\n\nexport async function loadCredentials(): Promise<StoredCredentials | null> {\n try {\n const raw = await readFile(getCredentialsPath(), \"utf8\");\n return JSON.parse(raw) as StoredCredentials;\n } catch {\n return null;\n }\n}\n\nexport async function saveCredentials(creds: StoredCredentials): Promise<void> {\n const path = getCredentialsPath();\n await mkdir(dirname(path), { recursive: true, mode: 0o700 });\n await writeFile(path, JSON.stringify(creds, null, 2), { mode: 0o600 });\n await chmod(path, 0o600);\n}\n\nexport async function clearCredentials(): Promise<void> {\n try {\n const { unlink } = await import(\"node:fs/promises\");\n await unlink(getCredentialsPath());\n } catch {\n // ignore\n }\n}\n\nexport function isTokenExpired(creds: StoredCredentials): boolean {\n if (!creds.expires_at) return false;\n return Date.now() >= new Date(creds.expires_at).getTime() - 60_000;\n}\n\nexport function credentialsFromTokenResponse(\n platformUrl: string,\n response: {\n access_token: string;\n refresh_token?: string;\n token_type: string;\n expires_in?: number;\n scope?: string;\n user?: StoredCredentials[\"user\"];\n },\n): StoredCredentials {\n const creds: StoredCredentials = {\n access_token: response.access_token,\n refresh_token: response.refresh_token,\n token_type: response.token_type,\n scope: response.scope,\n platform_url: platformUrl,\n user: response.user,\n };\n if (response.expires_in) {\n creds.expires_at = new Date(Date.now() + response.expires_in * 1000).toISOString();\n }\n return creds;\n}\n","import { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { DEFAULT_PLATFORM_URL } from \"./constants.js\";\n\nexport interface GlobalOptions {\n platformUrl?: string;\n token?: string;\n verbose?: boolean;\n json?: boolean;\n}\n\nexport interface ResolvedConfig {\n platformUrl: string;\n token?: string;\n verbose: boolean;\n json: boolean;\n}\n\nexport function resolveConfig(opts: GlobalOptions = {}): ResolvedConfig {\n const platformUrl = resolvePlatformUrl(opts.platformUrl);\n\n const token = opts.token ?? process.env.ASP_TOKEN;\n\n return {\n platformUrl,\n token,\n verbose: opts.verbose ?? false,\n json: opts.json ?? false,\n };\n}\n\nfunction resolvePlatformUrl(explicitUrl?: string): string {\n return (\n explicitUrl ??\n process.env.ASP_PLATFORM_URL ??\n process.env.PLATFORM_URL ??\n DEFAULT_PLATFORM_URL\n ).replace(/\\/$/, \"\");\n}\n\nexport function getAspConfigDir(): string {\n return process.env.ASP_CONFIG_DIR ?? join(homedir(), \".asp\");\n}\n\nexport function getCredentialsPath(): string {\n return join(getAspConfigDir(), \"credentials.json\");\n}\n","import { createRequire } from \"node:module\";\n\nconst require = createRequire(import.meta.url);\nconst pkg = require(\"../package.json\") as { version: string };\n\nexport const CLI_VERSION = pkg.version;\nexport const CLIENT_ID = \"agentscope-platform-cli\";\nexport const DEFAULT_SCOPE = \"platform:control\";\n\nexport const PLATFORM_URL = \"https://platform.agentscope.io\";\nexport const DEFAULT_PLATFORM_URL = PLATFORM_URL;\n/** @deprecated Use {@link PLATFORM_URL} */\nexport const PRE_PLATFORM_URL = PLATFORM_URL;\n\nexport const CLI_API_PREFIX = \"/api/cli/v1\";\n"],"mappings":";AAAA,SAAS,OAAO,OAAO,UAAU,iBAAiB;AAClD,SAAS,eAAe;;;ACDxB,SAAS,eAAe;AACxB,SAAS,YAAY;;;ACDrB,SAAS,qBAAqB;AAE9B,IAAMA,WAAU,cAAc,YAAY,GAAG;AAC7C,IAAM,MAAMA,SAAQ,iBAAiB;AAE9B,IAAM,cAAc,IAAI;AAIxB,IAAM,eAAe;AACrB,IAAM,uBAAuB;AAE7B,IAAM,mBAAmB;AAEzB,IAAM,iBAAiB;;;ADIvB,SAAS,cAAc,OAAsB,CAAC,GAAmB;AACtE,QAAM,cAAc,mBAAmB,KAAK,WAAW;AAEvD,QAAM,QAAQ,KAAK,SAAS,QAAQ,IAAI;AAExC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS,KAAK,WAAW;AAAA,IACzB,MAAM,KAAK,QAAQ;AAAA,EACrB;AACF;AAEA,SAAS,mBAAmB,aAA8B;AACxD,UACE,eACA,QAAQ,IAAI,oBACZ,QAAQ,IAAI,gBACZ,sBACA,QAAQ,OAAO,EAAE;AACrB;AAEO,SAAS,kBAA0B;AACxC,SAAO,QAAQ,IAAI,kBAAkB,KAAK,QAAQ,GAAG,MAAM;AAC7D;AAEO,SAAS,qBAA6B;AAC3C,SAAO,KAAK,gBAAgB,GAAG,kBAAkB;AACnD;;;AD5BA,eAAsB,kBAAqD;AACzE,MAAI;AACF,UAAM,MAAM,MAAM,SAAS,mBAAmB,GAAG,MAAM;AACvD,WAAO,KAAK,MAAM,GAAG;AAAA,EACvB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,gBAAgB,OAAyC;AAC7E,QAAM,OAAO,mBAAmB;AAChC,QAAM,MAAM,QAAQ,IAAI,GAAG,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAC3D,QAAM,UAAU,MAAM,KAAK,UAAU,OAAO,MAAM,CAAC,GAAG,EAAE,MAAM,IAAM,CAAC;AACrE,QAAM,MAAM,MAAM,GAAK;AACzB;AAEA,eAAsB,mBAAkC;AACtD,MAAI;AACF,UAAM,EAAE,OAAO,IAAI,MAAM,OAAO,aAAkB;AAClD,UAAM,OAAO,mBAAmB,CAAC;AAAA,EACnC,QAAQ;AAAA,EAER;AACF;AAEO,SAAS,eAAe,OAAmC;AAChE,MAAI,CAAC,MAAM,WAAY,QAAO;AAC9B,SAAO,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,UAAU,EAAE,QAAQ,IAAI;AAC9D;AAEO,SAAS,6BACd,aACA,UAQmB;AACnB,QAAM,QAA2B;AAAA,IAC/B,cAAc,SAAS;AAAA,IACvB,eAAe,SAAS;AAAA,IACxB,YAAY,SAAS;AAAA,IACrB,OAAO,SAAS;AAAA,IAChB,cAAc;AAAA,IACd,MAAM,SAAS;AAAA,EACjB;AACA,MAAI,SAAS,YAAY;AACvB,UAAM,aAAa,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,aAAa,GAAI,EAAE,YAAY;AAAA,EACnF;AACA,SAAO;AACT;","names":["require"]}
|
|
@@ -15,8 +15,7 @@ var pkg = require2("../package.json");
|
|
|
15
15
|
var CLI_VERSION = pkg.version;
|
|
16
16
|
var CLIENT_ID = "agentscope-platform-cli";
|
|
17
17
|
var DEFAULT_SCOPE = "platform:control";
|
|
18
|
-
var PLATFORM_URL = "https://platform
|
|
19
|
-
var PROD_PLATFORM_URL = "https://platform.agentscope.io";
|
|
18
|
+
var PLATFORM_URL = "https://platform.agentscope.io";
|
|
20
19
|
var DEFAULT_PLATFORM_URL = PLATFORM_URL;
|
|
21
20
|
var CLI_API_PREFIX = "/api/cli/v1";
|
|
22
21
|
|
|
@@ -32,11 +31,7 @@ function resolveConfig(opts = {}) {
|
|
|
32
31
|
};
|
|
33
32
|
}
|
|
34
33
|
function resolvePlatformUrl(explicitUrl) {
|
|
35
|
-
|
|
36
|
-
if (platformUrl === PROD_PLATFORM_URL) {
|
|
37
|
-
return DEFAULT_PLATFORM_URL;
|
|
38
|
-
}
|
|
39
|
-
return platformUrl;
|
|
34
|
+
return (explicitUrl ?? process.env.ASP_PLATFORM_URL ?? process.env.PLATFORM_URL ?? DEFAULT_PLATFORM_URL).replace(/\/$/, "");
|
|
40
35
|
}
|
|
41
36
|
function getAspConfigDir() {
|
|
42
37
|
return process.env.ASP_CONFIG_DIR ?? join(homedir(), ".asp");
|
|
@@ -100,4 +95,4 @@ export {
|
|
|
100
95
|
isTokenExpired,
|
|
101
96
|
credentialsFromTokenResponse
|
|
102
97
|
};
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
98
|
+
//# sourceMappingURL=chunk-IWWTP4LN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/auth/credentials.ts","../src/config.ts","../src/constants.ts"],"sourcesContent":["import { chmod, mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { dirname } from \"node:path\";\nimport { getCredentialsPath } from \"../config.js\";\n\nexport interface StoredCredentials {\n access_token: string;\n refresh_token?: string;\n token_type: string;\n expires_at?: string;\n scope?: string;\n platform_url: string;\n user?: {\n id: string;\n display_name?: string;\n email?: string;\n };\n}\n\nexport async function loadCredentials(): Promise<StoredCredentials | null> {\n try {\n const raw = await readFile(getCredentialsPath(), \"utf8\");\n return JSON.parse(raw) as StoredCredentials;\n } catch {\n return null;\n }\n}\n\nexport async function saveCredentials(creds: StoredCredentials): Promise<void> {\n const path = getCredentialsPath();\n await mkdir(dirname(path), { recursive: true, mode: 0o700 });\n await writeFile(path, JSON.stringify(creds, null, 2), { mode: 0o600 });\n await chmod(path, 0o600);\n}\n\nexport async function clearCredentials(): Promise<void> {\n try {\n const { unlink } = await import(\"node:fs/promises\");\n await unlink(getCredentialsPath());\n } catch {\n // ignore\n }\n}\n\nexport function isTokenExpired(creds: StoredCredentials): boolean {\n if (!creds.expires_at) return false;\n return Date.now() >= new Date(creds.expires_at).getTime() - 60_000;\n}\n\nexport function credentialsFromTokenResponse(\n platformUrl: string,\n response: {\n access_token: string;\n refresh_token?: string;\n token_type: string;\n expires_in?: number;\n scope?: string;\n user?: StoredCredentials[\"user\"];\n },\n): StoredCredentials {\n const creds: StoredCredentials = {\n access_token: response.access_token,\n refresh_token: response.refresh_token,\n token_type: response.token_type,\n scope: response.scope,\n platform_url: platformUrl,\n user: response.user,\n };\n if (response.expires_in) {\n creds.expires_at = new Date(Date.now() + response.expires_in * 1000).toISOString();\n }\n return creds;\n}\n","import { homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { DEFAULT_PLATFORM_URL } from \"./constants.js\";\n\nexport interface GlobalOptions {\n platformUrl?: string;\n token?: string;\n verbose?: boolean;\n json?: boolean;\n}\n\nexport interface ResolvedConfig {\n platformUrl: string;\n token?: string;\n verbose: boolean;\n json: boolean;\n}\n\nexport function resolveConfig(opts: GlobalOptions = {}): ResolvedConfig {\n const platformUrl = resolvePlatformUrl(opts.platformUrl);\n\n const token = opts.token ?? process.env.ASP_TOKEN;\n\n return {\n platformUrl,\n token,\n verbose: opts.verbose ?? false,\n json: opts.json ?? false,\n };\n}\n\nfunction resolvePlatformUrl(explicitUrl?: string): string {\n return (\n explicitUrl ??\n process.env.ASP_PLATFORM_URL ??\n process.env.PLATFORM_URL ??\n DEFAULT_PLATFORM_URL\n ).replace(/\\/$/, \"\");\n}\n\nexport function getAspConfigDir(): string {\n return process.env.ASP_CONFIG_DIR ?? join(homedir(), \".asp\");\n}\n\nexport function getCredentialsPath(): string {\n return join(getAspConfigDir(), \"credentials.json\");\n}\n","import { createRequire } from \"node:module\";\n\nconst require = createRequire(import.meta.url);\nconst pkg = require(\"../package.json\") as { version: string };\n\nexport const CLI_VERSION = pkg.version;\nexport const CLIENT_ID = \"agentscope-platform-cli\";\nexport const DEFAULT_SCOPE = \"platform:control\";\n\nexport const PLATFORM_URL = \"https://platform.agentscope.io\";\nexport const DEFAULT_PLATFORM_URL = PLATFORM_URL;\n/** @deprecated Use {@link PLATFORM_URL} */\nexport const PRE_PLATFORM_URL = PLATFORM_URL;\n\nexport const CLI_API_PREFIX = \"/api/cli/v1\";\n"],"mappings":";;;AAAA,SAAS,OAAO,OAAO,UAAU,iBAAiB;AAClD,SAAS,eAAe;;;ACDxB,SAAS,eAAe;AACxB,SAAS,YAAY;;;ACDrB,SAAS,qBAAqB;AAE9B,IAAMA,WAAU,cAAc,YAAY,GAAG;AAC7C,IAAM,MAAMA,SAAQ,iBAAiB;AAE9B,IAAM,cAAc,IAAI;AACxB,IAAM,YAAY;AAClB,IAAM,gBAAgB;AAEtB,IAAM,eAAe;AACrB,IAAM,uBAAuB;AAI7B,IAAM,iBAAiB;;;ADIvB,SAAS,cAAc,OAAsB,CAAC,GAAmB;AACtE,QAAM,cAAc,mBAAmB,KAAK,WAAW;AAEvD,QAAM,QAAQ,KAAK,SAAS,QAAQ,IAAI;AAExC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS,KAAK,WAAW;AAAA,IACzB,MAAM,KAAK,QAAQ;AAAA,EACrB;AACF;AAEA,SAAS,mBAAmB,aAA8B;AACxD,UACE,eACA,QAAQ,IAAI,oBACZ,QAAQ,IAAI,gBACZ,sBACA,QAAQ,OAAO,EAAE;AACrB;AAEO,SAAS,kBAA0B;AACxC,SAAO,QAAQ,IAAI,kBAAkB,KAAK,QAAQ,GAAG,MAAM;AAC7D;AAEO,SAAS,qBAA6B;AAC3C,SAAO,KAAK,gBAAgB,GAAG,kBAAkB;AACnD;;;AD5BA,eAAsB,kBAAqD;AACzE,MAAI;AACF,UAAM,MAAM,MAAM,SAAS,mBAAmB,GAAG,MAAM;AACvD,WAAO,KAAK,MAAM,GAAG;AAAA,EACvB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,gBAAgB,OAAyC;AAC7E,QAAM,OAAO,mBAAmB;AAChC,QAAM,MAAM,QAAQ,IAAI,GAAG,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AAC3D,QAAM,UAAU,MAAM,KAAK,UAAU,OAAO,MAAM,CAAC,GAAG,EAAE,MAAM,IAAM,CAAC;AACrE,QAAM,MAAM,MAAM,GAAK;AACzB;AAEA,eAAsB,mBAAkC;AACtD,MAAI;AACF,UAAM,EAAE,OAAO,IAAI,MAAM,OAAO,aAAkB;AAClD,UAAM,OAAO,mBAAmB,CAAC;AAAA,EACnC,QAAQ;AAAA,EAER;AACF;AAEO,SAAS,eAAe,OAAmC;AAChE,MAAI,CAAC,MAAM,WAAY,QAAO;AAC9B,SAAO,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,UAAU,EAAE,QAAQ,IAAI;AAC9D;AAEO,SAAS,6BACd,aACA,UAQmB;AACnB,QAAM,QAA2B;AAAA,IAC/B,cAAc,SAAS;AAAA,IACvB,eAAe,SAAS;AAAA,IACxB,YAAY,SAAS;AAAA,IACrB,OAAO,SAAS;AAAA,IAChB,cAAc;AAAA,IACd,MAAM,SAAS;AAAA,EACjB;AACA,MAAI,SAAS,YAAY;AACvB,UAAM,aAAa,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,aAAa,GAAI,EAAE,YAAY;AAAA,EACnF;AACA,SAAO;AACT;","names":["require"]}
|
package/dist/cli.js
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
loadCredentials,
|
|
13
13
|
resolveConfig,
|
|
14
14
|
saveCredentials
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-IWWTP4LN.js";
|
|
16
16
|
|
|
17
17
|
// src/cli.ts
|
|
18
18
|
import { Command } from "commander";
|
|
@@ -808,7 +808,7 @@ async function runLogs(getConfig2, opts) {
|
|
|
808
808
|
}
|
|
809
809
|
function registerAuthCommands(program2, getConfig2) {
|
|
810
810
|
const auth = program2.command("auth").description("Authentication commands");
|
|
811
|
-
let login = auth.command("login").description("Log in (default platform is
|
|
811
|
+
let login = auth.command("login").description("Log in (default platform is production)");
|
|
812
812
|
for (const [flags, desc] of LOGIN_OPTIONS) {
|
|
813
813
|
login = login.option(flags, desc);
|
|
814
814
|
}
|