@newpeak/barista-cli 0.2.244 → 0.2.246

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.
Files changed (30) hide show
  1. package/dist/commands/liberica/system/ai-conversation/get.d.ts +3 -0
  2. package/dist/commands/liberica/system/ai-conversation/get.d.ts.map +1 -0
  3. package/dist/commands/liberica/system/ai-conversation/get.js +67 -0
  4. package/dist/commands/liberica/system/ai-conversation/get.js.map +1 -0
  5. package/dist/commands/liberica/system/ai-conversation/index.d.ts +3 -0
  6. package/dist/commands/liberica/system/ai-conversation/index.d.ts.map +1 -0
  7. package/dist/commands/liberica/system/ai-conversation/index.js +13 -0
  8. package/dist/commands/liberica/system/ai-conversation/index.js.map +1 -0
  9. package/dist/commands/liberica/system/ai-conversation/list.d.ts +3 -0
  10. package/dist/commands/liberica/system/ai-conversation/list.d.ts.map +1 -0
  11. package/dist/commands/liberica/system/ai-conversation/list.js +106 -0
  12. package/dist/commands/liberica/system/ai-conversation/list.js.map +1 -0
  13. package/dist/commands/liberica/system/ai-conversation/overview.d.ts +3 -0
  14. package/dist/commands/liberica/system/ai-conversation/overview.d.ts.map +1 -0
  15. package/dist/commands/liberica/system/ai-conversation/overview.js +83 -0
  16. package/dist/commands/liberica/system/ai-conversation/overview.js.map +1 -0
  17. package/dist/commands/liberica/system/index.d.ts.map +1 -1
  18. package/dist/commands/liberica/system/index.js +2 -0
  19. package/dist/commands/liberica/system/index.js.map +1 -1
  20. package/dist/core/api/client.d.ts +15 -0
  21. package/dist/core/api/client.d.ts.map +1 -1
  22. package/dist/core/api/client.js +78 -0
  23. package/dist/core/api/client.js.map +1 -1
  24. package/dist/types/ai-conversation.d.ts +34 -0
  25. package/dist/types/ai-conversation.d.ts.map +1 -0
  26. package/dist/types/ai-conversation.js +2 -0
  27. package/dist/types/ai-conversation.js.map +1 -0
  28. package/package.json +1 -1
  29. package/skills/barista-cli/data/commands.json +19 -1
  30. package/skills/barista-cli/data/commands.yaml +14 -1
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createAiConversationGetCommand(): Command;
3
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/system/ai-conversation/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,8BAA8B,IAAI,OAAO,CAgExD"}
@@ -0,0 +1,67 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import Table from 'cli-table3';
4
+ import { configManager } from '../../../../core/config/manager.js';
5
+ import { apiClient } from '../../../../core/api/client.js';
6
+ import { shouldUseJson } from '../../../../utils/output.js';
7
+ export function createAiConversationGetCommand() {
8
+ const cmd = new Command('get');
9
+ cmd.description('Get AI conversation messages by conversation ID');
10
+ cmd.requiredOption('--conversation-id <id>', 'Conversation ID (BigInt as string)');
11
+ cmd.option('--json', 'Output as JSON');
12
+ cmd.action(async (options) => {
13
+ const context = configManager.getCurrentContext();
14
+ const environment = options.env || context.environment;
15
+ const tenant = options.tenant || context.tenant;
16
+ const outputJson = shouldUseJson(options);
17
+ const response = await apiClient.getAiConversationDetail(environment, tenant, options.conversationId);
18
+ if (!response.success) {
19
+ const errorMsg = response.error?.message || 'Failed to get AI conversation detail';
20
+ const errorCode = response.error?.code || 'UNKNOWN';
21
+ if (outputJson) {
22
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
23
+ }
24
+ else {
25
+ console.error(chalk.red(`\n✗ Failed: ${errorMsg}`));
26
+ if (errorCode)
27
+ console.error(chalk.gray(` Error code: ${errorCode}`));
28
+ console.error();
29
+ }
30
+ process.exit(1);
31
+ }
32
+ const items = Array.isArray(response.data) ? response.data : (response.data?.data || response.data?.rows || []);
33
+ if (!items || items.length === 0) {
34
+ if (outputJson) {
35
+ console.log(JSON.stringify({ success: true, data: [], note: 'No messages found for this conversation' }));
36
+ }
37
+ else {
38
+ console.log(chalk.yellow('\n⚠ No messages found for this conversation\n'));
39
+ }
40
+ return;
41
+ }
42
+ if (outputJson) {
43
+ console.log(JSON.stringify({ success: true, data: items }, null, 2));
44
+ return;
45
+ }
46
+ console.log(chalk.bold(`\n💬 AI Conversation ${options.conversationId} (${items.length} messages)\n`));
47
+ const table = new Table({
48
+ head: [chalk.bold('#'), chalk.bold('Role'), chalk.bold('Model'), chalk.bold('Tokens'), chalk.bold('Latency'), chalk.bold('Question / Response')],
49
+ style: { head: [] },
50
+ });
51
+ for (const item of items) {
52
+ const content = item.role === 'user' ? String(item.question || '') : String(item.aiResponse || '');
53
+ table.push([
54
+ String(item.messageIndex ?? '-'),
55
+ String(item.role || '-'),
56
+ String(item.model || '-').substring(0, 15),
57
+ String(item.tokenEstimate ?? '-'),
58
+ (item.latencyMs != null ? String(item.latencyMs) : '-') + 'ms',
59
+ content.replace(/\s+/g, ' ').substring(0, 50),
60
+ ]);
61
+ }
62
+ console.log(table.toString());
63
+ console.log();
64
+ });
65
+ return cmd;
66
+ }
67
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/system/ai-conversation/get.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createAiConversationCommand(): Command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/system/ai-conversation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,2BAA2B,IAAI,OAAO,CASrD"}
@@ -0,0 +1,13 @@
1
+ import { Command } from 'commander';
2
+ import { createAiConversationListCommand } from './list.js';
3
+ import { createAiConversationGetCommand } from './get.js';
4
+ import { createAiConversationOverviewCommand } from './overview.js';
5
+ export function createAiConversationCommand() {
6
+ const cmd = new Command('ai-conversation');
7
+ cmd.description('AI conversation log and statistics');
8
+ cmd.addCommand(createAiConversationListCommand());
9
+ cmd.addCommand(createAiConversationGetCommand());
10
+ cmd.addCommand(createAiConversationOverviewCommand());
11
+ return cmd;
12
+ }
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/system/ai-conversation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,mCAAmC,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,UAAU,2BAA2B;IACzC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3C,GAAG,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC;IAEtD,GAAG,CAAC,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC;IAClD,GAAG,CAAC,UAAU,CAAC,8BAA8B,EAAE,CAAC,CAAC;IACjD,GAAG,CAAC,UAAU,CAAC,mCAAmC,EAAE,CAAC,CAAC;IAEtD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createAiConversationListCommand(): Command;
3
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/system/ai-conversation/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,+BAA+B,IAAI,OAAO,CA6FzD"}
@@ -0,0 +1,106 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import Table from 'cli-table3';
4
+ import { configManager } from '../../../../core/config/manager.js';
5
+ import { apiClient } from '../../../../core/api/client.js';
6
+ import { shouldUseJson } from '../../../../utils/output.js';
7
+ function toInstant(input) {
8
+ // Accept yyyy-MM-dd or full ISO-8601; backend binds Instant
9
+ return /^\d{4}-\d{2}-\d{2}$/.test(input) ? `${input}T00:00:00Z` : input;
10
+ }
11
+ export function createAiConversationListCommand() {
12
+ const cmd = new Command('list');
13
+ cmd.description('List AI conversation logs with pagination and filters');
14
+ cmd.option('--page <number>', 'Page number', '1');
15
+ cmd.option('--size <number>', 'Page size', '20');
16
+ cmd.option('--user-id <id>', 'Filter by user ID');
17
+ cmd.option('--conversation-id <id>', 'Filter by conversation ID');
18
+ cmd.option('--model <model>', 'Filter by model');
19
+ cmd.option('--role <role>', 'Filter by role (user/ai/tool)');
20
+ cmd.option('--keyword <text>', 'LIKE search on question or AI response');
21
+ cmd.option('--start-time <time>', 'Filter start time (yyyy-MM-dd or ISO-8601)');
22
+ cmd.option('--end-time <time>', 'Filter end time (yyyy-MM-dd or ISO-8601)');
23
+ cmd.option('--json', 'Output as JSON');
24
+ cmd.action(async (options) => {
25
+ const context = configManager.getCurrentContext();
26
+ const environment = options.env || context.environment;
27
+ const tenant = options.tenant || context.tenant;
28
+ const outputJson = shouldUseJson(options);
29
+ const params = {
30
+ pageNo: parseInt(options.page, 10),
31
+ pageSize: parseInt(options.size, 10),
32
+ };
33
+ if (options.userId)
34
+ params.userId = options.userId;
35
+ if (options.conversationId)
36
+ params.conversationId = options.conversationId;
37
+ if (options.model)
38
+ params.model = options.model;
39
+ if (options.role)
40
+ params.role = options.role;
41
+ if (options.keyword)
42
+ params.keyword = options.keyword;
43
+ if (options.startTime)
44
+ params.startTime = toInstant(options.startTime);
45
+ if (options.endTime)
46
+ params.endTime = toInstant(options.endTime);
47
+ const response = await apiClient.getAiConversationPage(environment, tenant, params);
48
+ if (!response.success) {
49
+ const errorMsg = response.error?.message || 'Failed to get AI conversation logs';
50
+ const errorCode = response.error?.code || 'UNKNOWN';
51
+ if (outputJson) {
52
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
53
+ }
54
+ else {
55
+ console.error(chalk.red(`\n✗ Failed: ${errorMsg}`));
56
+ if (errorCode)
57
+ console.error(chalk.gray(` Error code: ${errorCode}`));
58
+ console.error();
59
+ }
60
+ process.exit(1);
61
+ }
62
+ const pageData = response.data;
63
+ const items = pageData?.rows || pageData?.data || [];
64
+ const total = pageData?.totalRows || pageData?.total || 0;
65
+ if (!items || items.length === 0) {
66
+ if (outputJson) {
67
+ console.log(JSON.stringify({ success: true, data: { items: [], pagination: { page: parseInt(options.page, 10), size: parseInt(options.size, 10), total: 0 } } }));
68
+ }
69
+ else {
70
+ console.log(chalk.yellow('\n⚠ No AI conversation logs found\n'));
71
+ }
72
+ return;
73
+ }
74
+ if (outputJson) {
75
+ console.log(JSON.stringify({
76
+ success: true,
77
+ data: {
78
+ items,
79
+ pagination: { page: parseInt(options.page, 10), size: parseInt(options.size, 10), total },
80
+ },
81
+ }, null, 2));
82
+ return;
83
+ }
84
+ console.log(chalk.bold(`\n📊 AI Conversation Logs (${total} total, page ${options.page})\n`));
85
+ const table = new Table({
86
+ head: [chalk.bold('Log ID'), chalk.bold('Conversation'), chalk.bold('Role'), chalk.bold('Model'), chalk.bold('Tokens'), chalk.bold('Latency'), chalk.bold('Question'), chalk.bold('Time')],
87
+ style: { head: [] },
88
+ });
89
+ for (const item of items) {
90
+ table.push([
91
+ String(item.logId || item.id || '').substring(0, 12) + '...',
92
+ String(item.conversationId || '-').substring(0, 12) + '...',
93
+ String(item.role || '-'),
94
+ String(item.model || '-').substring(0, 15),
95
+ String(item.tokenEstimate || 0),
96
+ (item.latencyMs != null ? String(item.latencyMs) : '-') + 'ms',
97
+ String((item.question || '').replace(/\s+/g, ' ')).substring(0, 30),
98
+ String(item.createTime || item.createdAt || '-').substring(0, 19),
99
+ ]);
100
+ }
101
+ console.log(table.toString());
102
+ console.log();
103
+ });
104
+ return cmd;
105
+ }
106
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/system/ai-conversation/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createAiConversationOverviewCommand(): Command;
3
+ //# sourceMappingURL=overview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview.d.ts","sourceRoot":"","sources":["../../../../../src/commands/liberica/system/ai-conversation/overview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,mCAAmC,IAAI,OAAO,CAyF7D"}
@@ -0,0 +1,83 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import Table from 'cli-table3';
4
+ import { configManager } from '../../../../core/config/manager.js';
5
+ import { apiClient } from '../../../../core/api/client.js';
6
+ import { shouldUseJson } from '../../../../utils/output.js';
7
+ export function createAiConversationOverviewCommand() {
8
+ const cmd = new Command('overview');
9
+ cmd.description('Get AI dashboard overview statistics');
10
+ cmd.option('--days <number>', 'Number of days to look back (default 7)');
11
+ cmd.option('--json', 'Output as JSON');
12
+ cmd.action(async (options) => {
13
+ const context = configManager.getCurrentContext();
14
+ const environment = options.env || context.environment;
15
+ const tenant = options.tenant || context.tenant;
16
+ const outputJson = shouldUseJson(options);
17
+ const params = {};
18
+ if (options.days)
19
+ params.days = parseInt(options.days, 10);
20
+ const response = await apiClient.getAiConversationOverview(environment, tenant, params);
21
+ if (!response.success) {
22
+ const errorMsg = response.error?.message || 'Failed to get AI conversation overview';
23
+ const errorCode = response.error?.code || 'UNKNOWN';
24
+ if (outputJson) {
25
+ console.log(JSON.stringify({ success: false, error: { code: errorCode, message: errorMsg } }));
26
+ }
27
+ else {
28
+ console.error(chalk.red(`\n✗ Failed: ${errorMsg}`));
29
+ if (errorCode)
30
+ console.error(chalk.gray(` Error code: ${errorCode}`));
31
+ console.error();
32
+ }
33
+ process.exit(1);
34
+ }
35
+ const overview = response.data;
36
+ if (!overview) {
37
+ if (outputJson) {
38
+ console.log(JSON.stringify({ success: true, data: null, note: 'No overview data available' }));
39
+ }
40
+ else {
41
+ console.log(chalk.yellow('\n⚠ No AI conversation overview data available\n'));
42
+ }
43
+ return;
44
+ }
45
+ if (outputJson) {
46
+ console.log(JSON.stringify({ success: true, data: overview }, null, 2));
47
+ return;
48
+ }
49
+ console.log(chalk.bold('\n📊 AI Dashboard Overview\n'));
50
+ const summaryTable = new Table({ style: { head: [] } });
51
+ summaryTable.push([chalk.gray('Total Conversations:'), String(overview.totalConversations ?? 0)], [chalk.gray('Satisfaction Rate:'), (overview.satisfactionRate != null ? String(overview.satisfactionRate) : '-') + '%'], [chalk.gray('Like Count:'), chalk.green(String(overview.likeCount ?? 0))], [chalk.gray('Dislike Count:'), chalk.red(String(overview.dislikeCount ?? 0))]);
52
+ console.log(summaryTable.toString());
53
+ if (overview.topDislikes && overview.topDislikes.length > 0) {
54
+ console.log(chalk.bold('\n Top Dislikes:\n'));
55
+ const dislikeTable = new Table({
56
+ head: [chalk.bold('Question'), chalk.bold('Reason'), chalk.bold('Time')],
57
+ style: { head: [] },
58
+ });
59
+ for (const d of overview.topDislikes.slice(0, 5)) {
60
+ dislikeTable.push([
61
+ String(d.question || '-').replace(/\s+/g, ' ').substring(0, 40),
62
+ String(d.reason || '-').substring(0, 30),
63
+ String(d.createTime || '-').substring(0, 19),
64
+ ]);
65
+ }
66
+ console.log(dislikeTable.toString());
67
+ }
68
+ if (overview.dailyTrend && overview.dailyTrend.length > 0) {
69
+ console.log(chalk.bold('\n Daily Trend:\n'));
70
+ const trendTable = new Table({
71
+ head: [chalk.bold('Date'), chalk.bold('Conversations')],
72
+ style: { head: [] },
73
+ });
74
+ for (const t of overview.dailyTrend) {
75
+ trendTable.push([String(t.date || '-'), String(t.conversationCount ?? 0)]);
76
+ }
77
+ console.log(trendTable.toString());
78
+ }
79
+ console.log();
80
+ });
81
+ return cmd;
82
+ }
83
+ //# sourceMappingURL=overview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview.js","sourceRoot":"","sources":["../../../../../src/commands/liberica/system/ai-conversation/overview.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/system/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,mBAAmB,IAAI,OAAO,CAQ7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/liberica/system/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,mBAAmB,IAAI,OAAO,CAS7C"}
@@ -1,9 +1,11 @@
1
1
  import { Command } from 'commander';
2
+ import { createAiConversationCommand } from './ai-conversation/index.js';
2
3
  import { createDruidCommand } from './druid/index.js';
3
4
  import { createDeployInfoCommand } from './deploy-info.js';
4
5
  export function createSystemCommand() {
5
6
  const systemCommand = new Command('system');
6
7
  systemCommand.description('System operations (platform admin only)');
8
+ systemCommand.addCommand(createAiConversationCommand());
7
9
  systemCommand.addCommand(createDruidCommand());
8
10
  systemCommand.addCommand(createDeployInfoCommand());
9
11
  return systemCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/system/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,UAAU,mBAAmB;IACjC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,aAAa,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC;IAErE,aAAa,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/C,aAAa,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAEpD,OAAO,aAAa,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/liberica/system/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,UAAU,mBAAmB;IACjC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5C,aAAa,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC;IAErE,aAAa,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACxD,aAAa,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/C,aAAa,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAEpD,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -965,6 +965,21 @@ export declare const apiClient: {
965
965
  getDruidDataSourceStat(environment: Environment, tenant: string): Promise<APIResponse<any>>;
966
966
  getDruidSqlStat(environment: Environment, tenant: string): Promise<APIResponse<any>>;
967
967
  getDruidUriStat(environment: Environment, tenant: string): Promise<APIResponse<any>>;
968
+ getAiConversationPage(environment: Environment, tenant: string, params: {
969
+ pageNo?: number;
970
+ pageSize?: number;
971
+ userId?: string;
972
+ conversationId?: string;
973
+ model?: string;
974
+ role?: string;
975
+ keyword?: string;
976
+ startTime?: string;
977
+ endTime?: string;
978
+ }): Promise<APIResponse<any>>;
979
+ getAiConversationDetail(environment: Environment, tenant: string, conversationId: string): Promise<APIResponse<any>>;
980
+ getAiConversationOverview(environment: Environment, tenant: string, params?: {
981
+ days?: number;
982
+ }): Promise<APIResponse<any>>;
968
983
  getDeployInfo(environment: Environment, tenant: string): Promise<APIResponse<DeployInfo>>;
969
984
  fpEstimate(environment: Environment, tenant: string, data: FpEstimateRequest): Promise<FpApiResponse>;
970
985
  fpActual(environment: Environment, tenant: string, data: FpActualRequest): Promise<FpApiResponse>;