@agentscope-ai/platform-cli 1.0.0 → 1.0.1

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.
@@ -9,7 +9,10 @@ import { homedir } from "os";
9
9
  import { join } from "path";
10
10
 
11
11
  // src/constants.ts
12
- var CLI_VERSION = "0.1.8";
12
+ import { createRequire } from "module";
13
+ var require2 = createRequire(import.meta.url);
14
+ var pkg = require2("../package.json");
15
+ var CLI_VERSION = pkg.version;
13
16
  var CLIENT_ID = "agentscope-platform-cli";
14
17
  var DEFAULT_SCOPE = "platform:control";
15
18
  var PLATFORM_URL = "https://platform-pre.agentscope.io";
@@ -89,4 +92,4 @@ export {
89
92
  isTokenExpired,
90
93
  credentialsFromTokenResponse
91
94
  };
92
- //# sourceMappingURL=chunk-YKR5C7LX.js.map
95
+ //# sourceMappingURL=chunk-R6ENZ5K2.js.map
@@ -1 +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 =\n opts.platformUrl ??\n process.env.ASP_PLATFORM_URL ??\n process.env.PLATFORM_URL ??\n DEFAULT_PLATFORM_URL;\n\n const token = opts.token ?? process.env.ASP_TOKEN;\n\n return {\n platformUrl: platformUrl.replace(/\\/$/, \"\"),\n token,\n verbose: opts.verbose ?? false,\n json: opts.json ?? false,\n };\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","export const CLI_VERSION = \"0.1.8\";\nexport const CLIENT_ID = \"agentscope-platform-cli\";\nexport const DEFAULT_SCOPE = \"platform:control\";\n\nexport const PLATFORM_URL = \"https://platform-pre.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;;;ACDd,IAAM,cAAc;AACpB,IAAM,YAAY;AAClB,IAAM,gBAAgB;AAEtB,IAAM,eAAe;AACrB,IAAM,uBAAuB;AAI7B,IAAM,iBAAiB;;;ADSvB,SAAS,cAAc,OAAsB,CAAC,GAAmB;AACtE,QAAM,cACJ,KAAK,eACL,QAAQ,IAAI,oBACZ,QAAQ,IAAI,gBACZ;AAEF,QAAM,QAAQ,KAAK,SAAS,QAAQ,IAAI;AAExC,SAAO;AAAA,IACL,aAAa,YAAY,QAAQ,OAAO,EAAE;AAAA,IAC1C;AAAA,IACA,SAAS,KAAK,WAAW;AAAA,IACzB,MAAM,KAAK,QAAQ;AAAA,EACrB;AACF;AAEO,SAAS,kBAA0B;AACxC,SAAO,QAAQ,IAAI,kBAAkB,KAAK,QAAQ,GAAG,MAAM;AAC7D;AAEO,SAAS,qBAA6B;AAC3C,SAAO,KAAK,gBAAgB,GAAG,kBAAkB;AACnD;;;ADvBA,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":[]}
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 =\n opts.platformUrl ??\n process.env.ASP_PLATFORM_URL ??\n process.env.PLATFORM_URL ??\n DEFAULT_PLATFORM_URL;\n\n const token = opts.token ?? process.env.ASP_TOKEN;\n\n return {\n platformUrl: platformUrl.replace(/\\/$/, \"\"),\n token,\n verbose: opts.verbose ?? false,\n json: opts.json ?? false,\n };\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-pre.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,cACJ,KAAK,eACL,QAAQ,IAAI,oBACZ,QAAQ,IAAI,gBACZ;AAEF,QAAM,QAAQ,KAAK,SAAS,QAAQ,IAAI;AAExC,SAAO;AAAA,IACL,aAAa,YAAY,QAAQ,OAAO,EAAE;AAAA,IAC1C;AAAA,IACA,SAAS,KAAK,WAAW;AAAA,IACzB,MAAM,KAAK,QAAQ;AAAA,EACrB;AACF;AAEO,SAAS,kBAA0B;AACxC,SAAO,QAAQ,IAAI,kBAAkB,KAAK,QAAQ,GAAG,MAAM;AAC7D;AAEO,SAAS,qBAA6B;AAC3C,SAAO,KAAK,gBAAgB,GAAG,kBAAkB;AACnD;;;ADvBA,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"]}
@@ -7,7 +7,10 @@ import { homedir } from "os";
7
7
  import { join } from "path";
8
8
 
9
9
  // src/constants.ts
10
- var CLI_VERSION = "0.1.8";
10
+ import { createRequire } from "module";
11
+ var require2 = createRequire(import.meta.url);
12
+ var pkg = require2("../package.json");
13
+ var CLI_VERSION = pkg.version;
11
14
  var PLATFORM_URL = "https://platform-pre.agentscope.io";
12
15
  var DEFAULT_PLATFORM_URL = PLATFORM_URL;
13
16
  var PRE_PLATFORM_URL = PLATFORM_URL;
@@ -85,4 +88,4 @@ export {
85
88
  isTokenExpired,
86
89
  credentialsFromTokenResponse
87
90
  };
88
- //# sourceMappingURL=chunk-L5UHVBIK.js.map
91
+ //# sourceMappingURL=chunk-ZWIGSPQ7.js.map
@@ -1 +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 =\n opts.platformUrl ??\n process.env.ASP_PLATFORM_URL ??\n process.env.PLATFORM_URL ??\n DEFAULT_PLATFORM_URL;\n\n const token = opts.token ?? process.env.ASP_TOKEN;\n\n return {\n platformUrl: platformUrl.replace(/\\/$/, \"\"),\n token,\n verbose: opts.verbose ?? false,\n json: opts.json ?? false,\n };\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","export const CLI_VERSION = \"0.1.8\";\nexport const CLIENT_ID = \"agentscope-platform-cli\";\nexport const DEFAULT_SCOPE = \"platform:control\";\n\nexport const PLATFORM_URL = \"https://platform-pre.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;;;ACDd,IAAM,cAAc;AAIpB,IAAM,eAAe;AACrB,IAAM,uBAAuB;AAE7B,IAAM,mBAAmB;AAEzB,IAAM,iBAAiB;;;ADSvB,SAAS,cAAc,OAAsB,CAAC,GAAmB;AACtE,QAAM,cACJ,KAAK,eACL,QAAQ,IAAI,oBACZ,QAAQ,IAAI,gBACZ;AAEF,QAAM,QAAQ,KAAK,SAAS,QAAQ,IAAI;AAExC,SAAO;AAAA,IACL,aAAa,YAAY,QAAQ,OAAO,EAAE;AAAA,IAC1C;AAAA,IACA,SAAS,KAAK,WAAW;AAAA,IACzB,MAAM,KAAK,QAAQ;AAAA,EACrB;AACF;AAEO,SAAS,kBAA0B;AACxC,SAAO,QAAQ,IAAI,kBAAkB,KAAK,QAAQ,GAAG,MAAM;AAC7D;AAEO,SAAS,qBAA6B;AAC3C,SAAO,KAAK,gBAAgB,GAAG,kBAAkB;AACnD;;;ADvBA,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":[]}
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 =\n opts.platformUrl ??\n process.env.ASP_PLATFORM_URL ??\n process.env.PLATFORM_URL ??\n DEFAULT_PLATFORM_URL;\n\n const token = opts.token ?? process.env.ASP_TOKEN;\n\n return {\n platformUrl: platformUrl.replace(/\\/$/, \"\"),\n token,\n verbose: opts.verbose ?? false,\n json: opts.json ?? false,\n };\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-pre.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,cACJ,KAAK,eACL,QAAQ,IAAI,oBACZ,QAAQ,IAAI,gBACZ;AAEF,QAAM,QAAQ,KAAK,SAAS,QAAQ,IAAI;AAExC,SAAO;AAAA,IACL,aAAa,YAAY,QAAQ,OAAO,EAAE;AAAA,IAC1C;AAAA,IACA,SAAS,KAAK,WAAW;AAAA,IACzB,MAAM,KAAK,QAAQ;AAAA,EACrB;AACF;AAEO,SAAS,kBAA0B;AACxC,SAAO,QAAQ,IAAI,kBAAkB,KAAK,QAAQ,GAAG,MAAM;AAC7D;AAEO,SAAS,qBAA6B;AAC3C,SAAO,KAAK,gBAAgB,GAAG,kBAAkB;AACnD;;;ADvBA,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-YKR5C7LX.js";
15
+ } from "./chunk-R6ENZ5K2.js";
16
16
 
17
17
  // src/cli.ts
18
18
  import { Command } from "commander";
@@ -4,7 +4,7 @@ import {
4
4
  isTokenExpired,
5
5
  loadCredentials,
6
6
  saveCredentials
7
- } from "./chunk-L5UHVBIK.js";
7
+ } from "./chunk-ZWIGSPQ7.js";
8
8
  export {
9
9
  clearCredentials,
10
10
  credentialsFromTokenResponse,
@@ -12,4 +12,4 @@ export {
12
12
  loadCredentials,
13
13
  saveCredentials
14
14
  };
15
- //# sourceMappingURL=credentials-OMJIFVFF.js.map
15
+ //# sourceMappingURL=credentials-JQEHX5KD.js.map
@@ -5,7 +5,7 @@ import {
5
5
  isTokenExpired,
6
6
  loadCredentials,
7
7
  saveCredentials
8
- } from "./chunk-YKR5C7LX.js";
8
+ } from "./chunk-R6ENZ5K2.js";
9
9
  export {
10
10
  clearCredentials,
11
11
  credentialsFromTokenResponse,
@@ -13,4 +13,4 @@ export {
13
13
  loadCredentials,
14
14
  saveCredentials
15
15
  };
16
- //# sourceMappingURL=credentials-LRYJ2DCU.js.map
16
+ //# sourceMappingURL=credentials-SA7AOLNR.js.map
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- declare const CLI_VERSION = "0.1.8";
1
+ declare const CLI_VERSION: string;
2
2
  declare const PLATFORM_URL = "https://platform-pre.agentscope.io";
3
3
  declare const DEFAULT_PLATFORM_URL = "https://platform-pre.agentscope.io";
4
4
  /** @deprecated Use {@link PLATFORM_URL} */
package/dist/index.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  loadCredentials,
10
10
  resolveConfig,
11
11
  saveCredentials
12
- } from "./chunk-L5UHVBIK.js";
12
+ } from "./chunk-ZWIGSPQ7.js";
13
13
 
14
14
  // src/utils/errors.ts
15
15
  var AspError = class _AspError extends Error {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentscope-ai/platform-cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "AgentScope Platform CLI (asp) — authentication for production and pre-release",
5
5
  "type": "module",
6
6
  "sideEffects": false,