@optima-chat/scout-cli 0.1.11 → 0.1.12

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.
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const infoCommand: Command;
3
+ //# sourceMappingURL=info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,WAAW,SAoBpB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Command } from 'commander';
2
+ import { CONFIG, SCOUT_API_URLS } from '../utils/config.js';
3
+ export const infoCommand = new Command('info')
4
+ .description('Show current environment and API configuration')
5
+ .action(() => {
6
+ const env = CONFIG.env;
7
+ const apiUrl = CONFIG.apiUrl;
8
+ console.log('Optima Scout CLI Configuration');
9
+ console.log('─'.repeat(40));
10
+ console.log(`Environment: ${env}`);
11
+ console.log(`API URL: ${apiUrl}`);
12
+ console.log('');
13
+ console.log('Available environments:');
14
+ Object.entries(SCOUT_API_URLS).forEach(([e, url]) => {
15
+ const marker = e === env ? ' ← current' : '';
16
+ console.log(` ${e.padEnd(6)} ${url}${marker}`);
17
+ });
18
+ console.log('');
19
+ console.log('Override with:');
20
+ console.log(' SCOUT_ENV=stage scout search "query" # Use specific environment');
21
+ console.log(' API_URL=http://... scout search "query" # Use custom URL');
22
+ });
23
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAoB,MAAM,oBAAoB,CAAC;AAE9E,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAE7B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACtC,MAAM,CAAC,OAAO,CAAC,cAAc,CAA6B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE;QAC/E,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import { Command } from 'commander';
4
4
  import { searchCommand } from './commands/search.js';
5
5
  import { productCommand } from './commands/product.js';
6
6
  import { initCommand } from './commands/init.js';
7
+ import { infoCommand } from './commands/info.js';
7
8
  const require = createRequire(import.meta.url);
8
9
  const packageJson = require('../package.json');
9
10
  const program = new Command();
@@ -15,6 +16,7 @@ program
15
16
  program.addCommand(initCommand);
16
17
  program.addCommand(searchCommand);
17
18
  program.addCommand(productCommand);
19
+ program.addCommand(infoCommand);
18
20
  // Parse arguments
19
21
  program.parse();
20
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAEhC,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1,4 +1,22 @@
1
+ /**
2
+ * 环境类型 (与 optima-agent 保持一致)
3
+ */
4
+ export type Environment = 'ci' | 'stage' | 'prod';
5
+ /**
6
+ * Scout API URL 配置
7
+ */
8
+ declare const SCOUT_API_URLS: Record<Environment, string>;
9
+ /**
10
+ * 从 ~/.optima/token.json 读取当前环境
11
+ */
12
+ declare function getCurrentEnv(): Environment;
13
+ /**
14
+ * 获取当前环境的 API URL
15
+ */
16
+ declare function getApiUrl(): string;
1
17
  export declare const CONFIG: {
2
18
  readonly apiUrl: string;
19
+ readonly env: Environment;
3
20
  };
21
+ export { getCurrentEnv, getApiUrl, SCOUT_API_URLS };
4
22
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,MAAM;;CAET,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD;;GAEG;AACH,QAAA,MAAM,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAI/C,CAAC;AAiBF;;GAEG;AACH,iBAAS,aAAa,IAAI,WAAW,CAsBpC;AAED;;GAEG;AACH,iBAAS,SAAS,IAAI,MAAM,CAQ3B;AAGD,eAAO,MAAM,MAAM;qBACH,MAAM;kBAGT,WAAW;CAGd,CAAC;AAEX,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
@@ -1,5 +1,58 @@
1
- // CLI configuration - uses environment variables directly
1
+ import { existsSync, readFileSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { homedir } from 'os';
4
+ /**
5
+ * Scout API URL 配置
6
+ */
7
+ const SCOUT_API_URLS = {
8
+ ci: 'http://dev.optima.sh:7290',
9
+ stage: 'https://scout-api.stage.optima.onl',
10
+ prod: 'https://scout-api.optima.onl',
11
+ };
12
+ /**
13
+ * 从 ~/.optima/token.json 读取当前环境
14
+ */
15
+ function getCurrentEnv() {
16
+ // 1. 环境变量优先
17
+ const envVar = process.env.SCOUT_ENV;
18
+ if (envVar && SCOUT_API_URLS[envVar]) {
19
+ return envVar;
20
+ }
21
+ // 2. 从 token.json 读取
22
+ const tokenPath = join(homedir(), '.optima', 'token.json');
23
+ if (existsSync(tokenPath)) {
24
+ try {
25
+ const data = JSON.parse(readFileSync(tokenPath, 'utf-8'));
26
+ if (data.env && SCOUT_API_URLS[data.env]) {
27
+ return data.env;
28
+ }
29
+ }
30
+ catch {
31
+ // 忽略解析错误
32
+ }
33
+ }
34
+ // 3. 默认 prod
35
+ return 'prod';
36
+ }
37
+ /**
38
+ * 获取当前环境的 API URL
39
+ */
40
+ function getApiUrl() {
41
+ // 环境变量可直接覆盖 URL
42
+ if (process.env.API_URL) {
43
+ return process.env.API_URL;
44
+ }
45
+ const env = getCurrentEnv();
46
+ return SCOUT_API_URLS[env];
47
+ }
48
+ // CLI configuration
2
49
  export const CONFIG = {
3
- apiUrl: process.env.API_URL || 'http://dev.optima.sh:7290',
50
+ get apiUrl() {
51
+ return getApiUrl();
52
+ },
53
+ get env() {
54
+ return getCurrentEnv();
55
+ },
4
56
  };
57
+ export { getCurrentEnv, getApiUrl, SCOUT_API_URLS };
5
58
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,2BAA2B;CAClD,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAO7B;;GAEG;AACH,MAAM,cAAc,GAAgC;IAClD,EAAE,EAAE,2BAA2B;IAC/B,KAAK,EAAE,oCAAoC;IAC3C,IAAI,EAAE,8BAA8B;CACrC,CAAC;AAiBF;;GAEG;AACH,SAAS,aAAa;IACpB,YAAY;IACZ,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAwB,CAAC;IACpD,IAAI,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qBAAqB;IACrB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAc,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC,GAAG,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,aAAa;IACb,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS;IAChB,gBAAgB;IAChB,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,oBAAoB;AACpB,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,MAAM;QACR,OAAO,SAAS,EAAE,CAAC;IACrB,CAAC;IACD,IAAI,GAAG;QACL,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;CACO,CAAC;AAEX,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optima-chat/scout-cli",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "AI-powered Amazon product research CLI tool - Search products and get detailed analytics",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",