@ai-support-agent/cli 0.0.4-beta.9 → 0.0.4
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-client.d.ts +5 -1
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +49 -62
- package/dist/api-client.js.map +1 -1
- package/dist/aws-credential-builder.d.ts +11 -2
- package/dist/aws-credential-builder.d.ts.map +1 -1
- package/dist/aws-credential-builder.js +45 -6
- package/dist/aws-credential-builder.js.map +1 -1
- package/dist/commands/api-chat-executor.d.ts.map +1 -1
- package/dist/commands/api-chat-executor.js +11 -3
- package/dist/commands/api-chat-executor.js.map +1 -1
- package/dist/commands/chat-executor.d.ts +1 -1
- package/dist/commands/chat-executor.d.ts.map +1 -1
- package/dist/commands/chat-executor.js +40 -42
- package/dist/commands/chat-executor.js.map +1 -1
- package/dist/commands/claude-code-runner.d.ts +4 -2
- package/dist/commands/claude-code-runner.d.ts.map +1 -1
- package/dist/commands/claude-code-runner.js +8 -4
- package/dist/commands/claude-code-runner.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/shared-chat-utils.d.ts +9 -1
- package/dist/commands/shared-chat-utils.d.ts.map +1 -1
- package/dist/commands/shared-chat-utils.js +24 -0
- package/dist/commands/shared-chat-utils.js.map +1 -1
- package/dist/config-manager.d.ts +1 -0
- package/dist/config-manager.d.ts.map +1 -1
- package/dist/config-manager.js +1 -0
- package/dist/config-manager.js.map +1 -1
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -2
- package/dist/constants.js.map +1 -1
- package/dist/docker/docker-runner.d.ts +19 -0
- package/dist/docker/docker-runner.d.ts.map +1 -0
- package/dist/docker/docker-runner.js +221 -0
- package/dist/docker/docker-runner.js.map +1 -0
- package/dist/docker/dockerfile-path.d.ts +10 -0
- package/dist/docker/dockerfile-path.d.ts.map +1 -0
- package/dist/docker/dockerfile-path.js +25 -0
- package/dist/docker/dockerfile-path.js.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -1
- package/dist/locales/en.json +13 -1
- package/dist/locales/ja.json +13 -1
- package/dist/locales/locales/en.json +13 -1
- package/dist/locales/locales/ja.json +13 -1
- package/dist/mcp/config-writer.d.ts +17 -0
- package/dist/mcp/config-writer.d.ts.map +1 -0
- package/dist/mcp/config-writer.js +63 -0
- package/dist/mcp/config-writer.js.map +1 -0
- package/dist/mcp/server.d.ts +11 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +55 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/credentials.d.ts +5 -0
- package/dist/mcp/tools/credentials.d.ts.map +1 -0
- package/dist/mcp/tools/credentials.js +33 -0
- package/dist/mcp/tools/credentials.js.map +1 -0
- package/dist/mcp/tools/db-query.d.ts +13 -0
- package/dist/mcp/tools/db-query.d.ts.map +1 -0
- package/dist/mcp/tools/db-query.js +129 -0
- package/dist/mcp/tools/db-query.js.map +1 -0
- package/dist/mcp/tools/db-schemas.d.ts +5 -0
- package/dist/mcp/tools/db-schemas.d.ts.map +1 -0
- package/dist/mcp/tools/db-schemas.js +61 -0
- package/dist/mcp/tools/db-schemas.js.map +1 -0
- package/dist/mcp/tools/mcp-response.d.ts +15 -0
- package/dist/mcp/tools/mcp-response.d.ts.map +1 -0
- package/dist/mcp/tools/mcp-response.js +15 -0
- package/dist/mcp/tools/mcp-response.js.map +1 -0
- package/dist/mcp/tools/project-info.d.ts +5 -0
- package/dist/mcp/tools/project-info.d.ts.map +1 -0
- package/dist/mcp/tools/project-info.js +43 -0
- package/dist/mcp/tools/project-info.js.map +1 -0
- package/dist/project-agent.d.ts +4 -0
- package/dist/project-agent.d.ts.map +1 -1
- package/dist/project-agent.js +38 -2
- package/dist/project-agent.js.map +1 -1
- package/dist/project-dir.d.ts.map +1 -1
- package/dist/project-dir.js +5 -2
- package/dist/project-dir.js.map +1 -1
- package/dist/types.d.ts +31 -1
- package/dist/types.d.ts.map +1 -1
- package/docker/Dockerfile +39 -0
- package/package.json +6 -1
package/dist/api-client.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import type { AgentCommand, AgentServerConfig, AwsCredentials, ChatChunk, CommandResult, HeartbeatResponse, PendingCommand, ProjectConfigResponse, ReleaseChannel, RegisterRequest, RegisterResponse, SystemInfo, VersionInfo } from './types';
|
|
1
|
+
import type { AgentCommand, AgentServerConfig, AwsCredentials, ChatChunk, CommandResult, DbCredentials, HeartbeatResponse, PendingCommand, ProjectConfigResponse, ReleaseChannel, RegisterRequest, RegisterResponse, SystemInfo, VersionInfo } from './types';
|
|
2
2
|
export declare class ApiClient {
|
|
3
3
|
private readonly client;
|
|
4
4
|
private readonly retry;
|
|
5
5
|
constructor(apiUrl: string, token: string);
|
|
6
|
+
private get;
|
|
7
|
+
private post;
|
|
8
|
+
private postVoid;
|
|
6
9
|
register(request: RegisterRequest): Promise<RegisterResponse>;
|
|
7
10
|
heartbeat(agentId: string, systemInfo: SystemInfo, updateError?: string, availableChatModes?: string[], activeChatMode?: string, ipAddress?: string): Promise<HeartbeatResponse | void>;
|
|
8
11
|
getVersionInfo(channel?: ReleaseChannel): Promise<VersionInfo>;
|
|
@@ -14,6 +17,7 @@ export declare class ApiClient {
|
|
|
14
17
|
getConfig(): Promise<AgentServerConfig>;
|
|
15
18
|
getProjectConfig(): Promise<ProjectConfigResponse>;
|
|
16
19
|
getAwsCredentials(awsAccountId: string): Promise<AwsCredentials>;
|
|
20
|
+
getDbCredentials(name: string): Promise<DbCredentials>;
|
|
17
21
|
submitChatChunk(commandId: string, chunk: ChatChunk, agentId: string): Promise<void>;
|
|
18
22
|
}
|
|
19
23
|
//# sourceMappingURL=api-client.d.ts.map
|
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAEzB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAEzB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;YAqB3B,GAAG;YAOH,IAAI;YAOJ,QAAQ;IAMhB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAY7D,SAAS,CACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,cAAc,CAAC,EAAE,MAAM,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAc9B,cAAc,CAAC,OAAO,GAAE,cAAyB,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxE,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAKpE,OAAO,CAAC,iBAAiB;IAMnB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMrE,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAMV,sBAAsB,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAAG,cAAc,GACnC,OAAO,CAAC,IAAI,CAAC;IAQV,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKvC,gBAAgB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAKlD,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKhE,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAKtD,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;CAKjB"}
|
package/dist/api-client.js
CHANGED
|
@@ -29,48 +29,53 @@ class ApiClient {
|
|
|
29
29
|
baseDelayMs: constants_1.API_BASE_DELAY_MS,
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
|
-
async
|
|
33
|
-
logger_1.logger.debug(`Registering agent: ${request.agentId}`);
|
|
32
|
+
async get(url, config) {
|
|
34
33
|
return this.retry.withRetry(async () => {
|
|
35
|
-
const {
|
|
36
|
-
const { data } = await this.client.post(constants_1.API_ENDPOINTS.REGISTER, {
|
|
37
|
-
...rest,
|
|
38
|
-
version: constants_1.AGENT_VERSION,
|
|
39
|
-
...(ipAddress && { ipAddress }),
|
|
40
|
-
...(availableChatModes !== undefined && { availableChatModes }),
|
|
41
|
-
...(activeChatMode !== undefined && { activeChatMode }),
|
|
42
|
-
});
|
|
34
|
+
const { data } = await this.client.get(url, config);
|
|
43
35
|
return data;
|
|
44
36
|
});
|
|
45
37
|
}
|
|
46
|
-
async
|
|
47
|
-
logger_1.logger.debug('Sending heartbeat');
|
|
38
|
+
async post(url, body, config) {
|
|
48
39
|
return this.retry.withRetry(async () => {
|
|
49
|
-
const { data } = await this.client.post(
|
|
50
|
-
agentId,
|
|
51
|
-
timestamp: Date.now(),
|
|
52
|
-
version: constants_1.AGENT_VERSION,
|
|
53
|
-
systemInfo,
|
|
54
|
-
...(updateError && { updateError }),
|
|
55
|
-
...(availableChatModes !== undefined && { availableChatModes }),
|
|
56
|
-
...(activeChatMode !== undefined && { activeChatMode }),
|
|
57
|
-
...(ipAddress && { ipAddress }),
|
|
58
|
-
});
|
|
40
|
+
const { data } = await this.client.post(url, body, config);
|
|
59
41
|
return data;
|
|
60
42
|
});
|
|
61
43
|
}
|
|
62
|
-
async
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
44
|
+
async postVoid(url, body, config) {
|
|
45
|
+
await this.retry.withRetry(async () => {
|
|
46
|
+
await this.client.post(url, body, config);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
async register(request) {
|
|
50
|
+
logger_1.logger.debug(`Registering agent: ${request.agentId}`);
|
|
51
|
+
const { ipAddress, availableChatModes, activeChatMode, ...rest } = request;
|
|
52
|
+
return this.post(constants_1.API_ENDPOINTS.REGISTER, {
|
|
53
|
+
...rest,
|
|
54
|
+
version: constants_1.AGENT_VERSION,
|
|
55
|
+
...(ipAddress && { ipAddress }),
|
|
56
|
+
...(availableChatModes !== undefined && { availableChatModes }),
|
|
57
|
+
...(activeChatMode !== undefined && { activeChatMode }),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async heartbeat(agentId, systemInfo, updateError, availableChatModes, activeChatMode, ipAddress) {
|
|
61
|
+
logger_1.logger.debug('Sending heartbeat');
|
|
62
|
+
return this.post(constants_1.API_ENDPOINTS.HEARTBEAT, {
|
|
63
|
+
agentId,
|
|
64
|
+
timestamp: Date.now(),
|
|
65
|
+
version: constants_1.AGENT_VERSION,
|
|
66
|
+
systemInfo,
|
|
67
|
+
...(updateError && { updateError }),
|
|
68
|
+
...(availableChatModes !== undefined && { availableChatModes }),
|
|
69
|
+
...(activeChatMode !== undefined && { activeChatMode }),
|
|
70
|
+
...(ipAddress && { ipAddress }),
|
|
66
71
|
});
|
|
67
72
|
}
|
|
73
|
+
async getVersionInfo(channel = 'latest') {
|
|
74
|
+
return this.get(`${constants_1.API_ENDPOINTS.VERSION}?channel=${channel}`);
|
|
75
|
+
}
|
|
68
76
|
async getPendingCommands(agentId) {
|
|
69
77
|
logger_1.logger.debug('Polling for pending commands');
|
|
70
|
-
return this.
|
|
71
|
-
const { data } = await this.client.get(constants_1.API_ENDPOINTS.COMMANDS_PENDING, { params: { agentId } });
|
|
72
|
-
return data;
|
|
73
|
-
});
|
|
78
|
+
return this.get(constants_1.API_ENDPOINTS.COMMANDS_PENDING, { params: { agentId } });
|
|
74
79
|
}
|
|
75
80
|
validateCommandId(commandId) {
|
|
76
81
|
if (!/^[a-zA-Z0-9_-]+$/.test(commandId)) {
|
|
@@ -80,58 +85,40 @@ class ApiClient {
|
|
|
80
85
|
async getCommand(commandId, agentId) {
|
|
81
86
|
this.validateCommandId(commandId);
|
|
82
87
|
logger_1.logger.debug(`Fetching command: ${commandId}`);
|
|
83
|
-
return this.
|
|
84
|
-
const { data } = await this.client.get(constants_1.API_ENDPOINTS.COMMAND(commandId), { params: { agentId } });
|
|
85
|
-
return data;
|
|
86
|
-
});
|
|
88
|
+
return this.get(constants_1.API_ENDPOINTS.COMMAND(commandId), { params: { agentId } });
|
|
87
89
|
}
|
|
88
90
|
async submitResult(commandId, result, agentId) {
|
|
89
91
|
this.validateCommandId(commandId);
|
|
90
92
|
logger_1.logger.debug(`Submitting result for command: ${commandId}`);
|
|
91
|
-
await this.
|
|
92
|
-
await this.client.post(constants_1.API_ENDPOINTS.COMMAND_RESULT(commandId), result, {
|
|
93
|
-
params: { agentId },
|
|
94
|
-
});
|
|
95
|
-
});
|
|
93
|
+
await this.postVoid(constants_1.API_ENDPOINTS.COMMAND_RESULT(commandId), result, { params: { agentId } });
|
|
96
94
|
}
|
|
97
95
|
async reportConnectionStatus(agentId, status) {
|
|
98
|
-
await this.
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
timestamp: Date.now(),
|
|
103
|
-
});
|
|
96
|
+
await this.postVoid(constants_1.API_ENDPOINTS.CONNECTION_STATUS, {
|
|
97
|
+
agentId,
|
|
98
|
+
status,
|
|
99
|
+
timestamp: Date.now(),
|
|
104
100
|
});
|
|
105
101
|
}
|
|
106
102
|
async getConfig() {
|
|
107
103
|
logger_1.logger.debug('Fetching agent config from server');
|
|
108
|
-
return this.
|
|
109
|
-
const { data } = await this.client.get(constants_1.API_ENDPOINTS.CONFIG);
|
|
110
|
-
return data;
|
|
111
|
-
});
|
|
104
|
+
return this.get(constants_1.API_ENDPOINTS.CONFIG);
|
|
112
105
|
}
|
|
113
106
|
async getProjectConfig() {
|
|
114
107
|
logger_1.logger.debug('Fetching project config from server');
|
|
115
|
-
return this.
|
|
116
|
-
const { data } = await this.client.get(constants_1.API_ENDPOINTS.PROJECT_CONFIG);
|
|
117
|
-
return data;
|
|
118
|
-
});
|
|
108
|
+
return this.get(constants_1.API_ENDPOINTS.PROJECT_CONFIG);
|
|
119
109
|
}
|
|
120
110
|
async getAwsCredentials(awsAccountId) {
|
|
121
111
|
logger_1.logger.debug(`Fetching AWS credentials for account: ${awsAccountId}`);
|
|
122
|
-
return this.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
});
|
|
112
|
+
return this.get(constants_1.API_ENDPOINTS.AWS_CREDENTIALS, { params: { awsAccountId } });
|
|
113
|
+
}
|
|
114
|
+
async getDbCredentials(name) {
|
|
115
|
+
logger_1.logger.debug(`Fetching DB credentials for: ${name}`);
|
|
116
|
+
return this.get(constants_1.API_ENDPOINTS.DB_CREDENTIALS, { params: { name } });
|
|
126
117
|
}
|
|
127
118
|
async submitChatChunk(commandId, chunk, agentId) {
|
|
128
119
|
this.validateCommandId(commandId);
|
|
129
120
|
logger_1.logger.debug(`Submitting chat chunk ${chunk.index} (${chunk.type}) for command: ${commandId}`);
|
|
130
|
-
await this.
|
|
131
|
-
await this.client.post(constants_1.API_ENDPOINTS.COMMAND_CHUNKS(commandId), chunk, {
|
|
132
|
-
params: { agentId },
|
|
133
|
-
});
|
|
134
|
-
});
|
|
121
|
+
await this.postVoid(constants_1.API_ENDPOINTS.COMMAND_CHUNKS(commandId), chunk, { params: { agentId } });
|
|
135
122
|
}
|
|
136
123
|
}
|
|
137
124
|
exports.ApiClient = ApiClient;
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import type { ApiClient } from './api-client';
|
|
2
2
|
import type { ProjectConfigResponse } from './types';
|
|
3
|
+
export interface SsoAuthRequiredInfo {
|
|
4
|
+
accountId: string;
|
|
5
|
+
accountName: string;
|
|
6
|
+
}
|
|
7
|
+
export interface AwsCredentialResult {
|
|
8
|
+
env?: Record<string, string>;
|
|
9
|
+
errors: string[];
|
|
10
|
+
ssoAuthRequired: SsoAuthRequiredInfo[];
|
|
11
|
+
}
|
|
3
12
|
/**
|
|
4
13
|
* プロファイル方式でAWS認証情報を構築する。
|
|
5
14
|
* 全アカウントの認証情報をサーバーから取得し、プロファイルファイルに書き込んで
|
|
6
15
|
* 環境変数(AWS_CONFIG_FILE, AWS_SHARED_CREDENTIALS_FILE 等)を返す。
|
|
7
16
|
*/
|
|
8
|
-
export declare function buildAwsProfileCredentials(client: ApiClient, projectDir: string, projectConfig: ProjectConfigResponse): Promise<
|
|
17
|
+
export declare function buildAwsProfileCredentials(client: ApiClient, projectDir: string, projectConfig: ProjectConfigResponse): Promise<AwsCredentialResult>;
|
|
9
18
|
/**
|
|
10
19
|
* 従来方式(単一アカウント)でAWS認証情報を環境変数として構築する。
|
|
11
20
|
* awsAccountId が指定されている場合にサーバーから認証情報を取得し、
|
|
12
21
|
* AWS_ACCESS_KEY_ID 等の環境変数マップを返す。
|
|
13
22
|
*/
|
|
14
|
-
export declare function buildSingleAccountAwsEnv(client: ApiClient, awsAccountId: string | undefined): Promise<
|
|
23
|
+
export declare function buildSingleAccountAwsEnv(client: ApiClient, awsAccountId: string | undefined): Promise<AwsCredentialResult>;
|
|
15
24
|
//# sourceMappingURL=aws-credential-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-credential-builder.d.ts","sourceRoot":"","sources":["../src/aws-credential-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aws-credential-builder.d.ts","sourceRoot":"","sources":["../src/aws-credential-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAGpD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe,EAAE,mBAAmB,EAAE,CAAA;CACvC;AAoCD;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,qBAAqB,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAyC9B;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,SAAS,EACjB,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAoB9B"}
|
|
@@ -32,11 +32,40 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
35
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
39
|
exports.buildAwsProfileCredentials = buildAwsProfileCredentials;
|
|
37
40
|
exports.buildSingleAccountAwsEnv = buildSingleAccountAwsEnv;
|
|
41
|
+
const axios_1 = __importDefault(require("axios"));
|
|
38
42
|
const logger_1 = require("./logger");
|
|
39
43
|
const utils_1 = require("./utils");
|
|
44
|
+
/**
|
|
45
|
+
* HTTPエラーレスポンスからAWS認証エラーメッセージを抽出する
|
|
46
|
+
*/
|
|
47
|
+
function extractAwsCredentialError(error, accountName) {
|
|
48
|
+
if (axios_1.default.isAxiosError(error) && error.response) {
|
|
49
|
+
const status = error.response.status;
|
|
50
|
+
const data = error.response.data;
|
|
51
|
+
if (data) {
|
|
52
|
+
// SSO認証切れの場合は専用メッセージ + SSO情報
|
|
53
|
+
if (data.error === 'SSO_AUTH_REQUIRED') {
|
|
54
|
+
const accountId = typeof data.accountId === 'string' ? data.accountId : '';
|
|
55
|
+
return {
|
|
56
|
+
errorMessage: `AWS SSO認証の有効期限が切れています(${accountName})。管理画面からSSO再認証を実行してください。`,
|
|
57
|
+
ssoInfo: { accountId, accountName },
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
// その他のAPIエラー(422含む)はレスポンス詳細を含める
|
|
61
|
+
const serverMessage = data.message ?? data.error ?? 'Unknown error';
|
|
62
|
+
logger_1.logger.debug(`[aws-cred] API error response (status=${status}): ${JSON.stringify(data)}`);
|
|
63
|
+
return { errorMessage: `AWS認証情報の取得に失敗しました(${accountName}): [${status}] ${serverMessage}` };
|
|
64
|
+
}
|
|
65
|
+
return { errorMessage: `AWS認証情報の取得に失敗しました(${accountName}): HTTP ${status}` };
|
|
66
|
+
}
|
|
67
|
+
return { errorMessage: `AWS認証情報の取得に失敗しました(${accountName}): ${(0, utils_1.getErrorMessage)(error)}` };
|
|
68
|
+
}
|
|
40
69
|
/**
|
|
41
70
|
* プロファイル方式でAWS認証情報を構築する。
|
|
42
71
|
* 全アカウントの認証情報をサーバーから取得し、プロファイルファイルに書き込んで
|
|
@@ -45,10 +74,12 @@ const utils_1 = require("./utils");
|
|
|
45
74
|
async function buildAwsProfileCredentials(client, projectDir, projectConfig) {
|
|
46
75
|
const accounts = projectConfig.aws?.accounts;
|
|
47
76
|
if (!accounts?.length)
|
|
48
|
-
return
|
|
77
|
+
return { errors: [], ssoAuthRequired: [] };
|
|
49
78
|
const projectCode = projectConfig.project.projectCode;
|
|
50
79
|
const { writeAwsCredentials, buildAwsProfileEnv } = await Promise.resolve().then(() => __importStar(require('./aws-profile')));
|
|
51
80
|
const credentialMap = new Map();
|
|
81
|
+
const errors = [];
|
|
82
|
+
const ssoAuthRequired = [];
|
|
52
83
|
for (const account of accounts) {
|
|
53
84
|
try {
|
|
54
85
|
logger_1.logger.info(`[chat] Fetching AWS credentials for profile: ${account.name} (${account.id})`);
|
|
@@ -56,16 +87,22 @@ async function buildAwsProfileCredentials(client, projectDir, projectConfig) {
|
|
|
56
87
|
credentialMap.set(account.name, creds);
|
|
57
88
|
}
|
|
58
89
|
catch (error) {
|
|
90
|
+
const { errorMessage, ssoInfo } = extractAwsCredentialError(error, account.name);
|
|
91
|
+
errors.push(errorMessage);
|
|
92
|
+
if (ssoInfo) {
|
|
93
|
+
ssoAuthRequired.push(ssoInfo);
|
|
94
|
+
}
|
|
59
95
|
logger_1.logger.warn(`[chat] Failed to get AWS credentials for ${account.name}: ${(0, utils_1.getErrorMessage)(error)}`);
|
|
60
96
|
}
|
|
61
97
|
}
|
|
62
98
|
if (credentialMap.size === 0)
|
|
63
|
-
return
|
|
99
|
+
return { errors, ssoAuthRequired };
|
|
64
100
|
// credentials ファイルに書き込み
|
|
65
101
|
writeAwsCredentials(projectDir, projectCode, credentialMap);
|
|
66
102
|
// デフォルトアカウントを特定
|
|
67
103
|
const defaultAccount = accounts.find((a) => a.isDefault) ?? accounts[0];
|
|
68
|
-
|
|
104
|
+
const env = buildAwsProfileEnv(projectDir, projectCode, defaultAccount.name, defaultAccount.region);
|
|
105
|
+
return { env, errors, ssoAuthRequired };
|
|
69
106
|
}
|
|
70
107
|
/**
|
|
71
108
|
* 従来方式(単一アカウント)でAWS認証情報を環境変数として構築する。
|
|
@@ -74,7 +111,7 @@ async function buildAwsProfileCredentials(client, projectDir, projectConfig) {
|
|
|
74
111
|
*/
|
|
75
112
|
async function buildSingleAccountAwsEnv(client, awsAccountId) {
|
|
76
113
|
if (!awsAccountId)
|
|
77
|
-
return
|
|
114
|
+
return { errors: [], ssoAuthRequired: [] };
|
|
78
115
|
try {
|
|
79
116
|
logger_1.logger.info(`[chat] Fetching AWS credentials for account: ${awsAccountId}`);
|
|
80
117
|
const creds = await client.getAwsCredentials(awsAccountId);
|
|
@@ -85,11 +122,13 @@ async function buildSingleAccountAwsEnv(client, awsAccountId) {
|
|
|
85
122
|
...(creds.sessionToken ? { AWS_SESSION_TOKEN: creds.sessionToken } : {}),
|
|
86
123
|
};
|
|
87
124
|
logger_1.logger.info(`[chat] AWS credentials obtained for region=${creds.region}`);
|
|
88
|
-
return env;
|
|
125
|
+
return { env, errors: [], ssoAuthRequired: [] };
|
|
89
126
|
}
|
|
90
127
|
catch (error) {
|
|
128
|
+
const { errorMessage, ssoInfo } = extractAwsCredentialError(error, awsAccountId);
|
|
129
|
+
const ssoAuthRequired = ssoInfo ? [ssoInfo] : [];
|
|
91
130
|
logger_1.logger.warn(`[chat] Failed to get AWS credentials: ${(0, utils_1.getErrorMessage)(error)}`);
|
|
92
|
-
return
|
|
131
|
+
return { errors: [errorMessage], ssoAuthRequired };
|
|
93
132
|
}
|
|
94
133
|
}
|
|
95
134
|
//# sourceMappingURL=aws-credential-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-credential-builder.js","sourceRoot":"","sources":["../src/aws-credential-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aws-credential-builder.js","sourceRoot":"","sources":["../src/aws-credential-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-chat-executor.d.ts","sourceRoot":"","sources":["../../src/commands/api-chat-executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAazC,OAAO,KAAK,EAAE,iBAAiB,EAAiB,WAAW,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"api-chat-executor.d.ts","sourceRoot":"","sources":["../../src/commands/api-chat-executor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAazC,OAAO,KAAK,EAAE,iBAAiB,EAAiB,WAAW,EAAE,aAAa,EAAkB,MAAM,UAAU,CAAA;AAiB5G;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,EACjB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CA8DxB"}
|
|
@@ -34,7 +34,8 @@ async function executeApiChatCommand(payload, commandId, client, config, agentId
|
|
|
34
34
|
const model = config?.claudeCodeConfig?.model ?? constants_1.DEFAULT_ANTHROPIC_MODEL;
|
|
35
35
|
const maxTokens = config?.claudeCodeConfig?.maxTokens ?? constants_1.DEFAULT_MAX_TOKENS;
|
|
36
36
|
const systemPrompt = config?.claudeCodeConfig?.systemPrompt;
|
|
37
|
-
const
|
|
37
|
+
const historyMessages = (0, shared_chat_utils_1.parseHistory)(payload.history);
|
|
38
|
+
const result = await callAnthropicApi(apiKey, message, model, maxTokens, systemPrompt, sendChunk, historyMessages);
|
|
38
39
|
logger_1.logger.info(`[api-chat] API chat command completed [${commandId}]: output=${result.text.length} chars, ${getChunkIndex()} chunks sent, tokens: in=${result.usage.inputTokens} out=${result.usage.outputTokens}`);
|
|
39
40
|
// done チャンクに usage 情報を含める
|
|
40
41
|
const doneContent = JSON.stringify({
|
|
@@ -58,12 +59,19 @@ async function executeApiChatCommand(payload, commandId, client, config, agentId
|
|
|
58
59
|
/**
|
|
59
60
|
* Anthropic Messages API を呼び出し、ストリーミングレスポンスを処理する
|
|
60
61
|
*/
|
|
61
|
-
async function callAnthropicApi(apiKey, message, model, maxTokens, systemPrompt, sendChunk) {
|
|
62
|
+
async function callAnthropicApi(apiKey, message, model, maxTokens, systemPrompt, sendChunk, history) {
|
|
63
|
+
const messages = [
|
|
64
|
+
...(history ?? []).map((msg) => ({
|
|
65
|
+
role: msg.role === 'assistant' ? 'assistant' : 'user',
|
|
66
|
+
content: msg.content,
|
|
67
|
+
})),
|
|
68
|
+
{ role: 'user', content: message },
|
|
69
|
+
];
|
|
62
70
|
const body = {
|
|
63
71
|
model,
|
|
64
72
|
max_tokens: maxTokens,
|
|
65
73
|
stream: true,
|
|
66
|
-
messages
|
|
74
|
+
messages,
|
|
67
75
|
};
|
|
68
76
|
if (systemPrompt) {
|
|
69
77
|
body.system = systemPrompt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-chat-executor.js","sourceRoot":"","sources":["../../src/commands/api-chat-executor.ts"],"names":[],"mappings":";;;;;AAoCA,
|
|
1
|
+
{"version":3,"file":"api-chat-executor.js","sourceRoot":"","sources":["../../src/commands/api-chat-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,5 @@ export { buildClaudeArgs, buildCleanEnv } from './claude-code-runner';
|
|
|
8
8
|
*
|
|
9
9
|
* activeChatMode はサーバーの chatMode ではなく、エージェント内部の実行方式を指す
|
|
10
10
|
*/
|
|
11
|
-
export declare function executeChatCommand(payload: ChatPayload, commandId: string, client: ApiClient, serverConfig?: AgentServerConfig, activeChatMode?: AgentChatMode, agentId?: string, projectDir?: string, projectConfig?: ProjectConfigResponse): Promise<CommandResult>;
|
|
11
|
+
export declare function executeChatCommand(payload: ChatPayload, commandId: string, client: ApiClient, serverConfig?: AgentServerConfig, activeChatMode?: AgentChatMode, agentId?: string, projectDir?: string, projectConfig?: ProjectConfigResponse, mcpConfigPath?: string): Promise<CommandResult>;
|
|
12
12
|
//# sourceMappingURL=chat-executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-executor.d.ts","sourceRoot":"","sources":["../../src/commands/chat-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"chat-executor.d.ts","sourceRoot":"","sources":["../../src/commands/chat-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAIzC,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAiB,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AASlI,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAErE;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,EACjB,YAAY,CAAC,EAAE,iBAAiB,EAChC,cAAc,CAAC,EAAE,aAAa,EAC9B,OAAO,CAAC,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,qBAAqB,EACrC,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,CAcxB"}
|
|
@@ -1,37 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.buildCleanEnv = exports.buildClaudeArgs = void 0;
|
|
37
4
|
exports.executeChatCommand = executeChatCommand;
|
|
@@ -39,6 +6,7 @@ const aws_credential_builder_1 = require("../aws-credential-builder");
|
|
|
39
6
|
const constants_1 = require("../constants");
|
|
40
7
|
const logger_1 = require("../logger");
|
|
41
8
|
const utils_1 = require("../utils");
|
|
9
|
+
const project_dir_1 = require("../project-dir");
|
|
42
10
|
const api_chat_executor_1 = require("./api-chat-executor");
|
|
43
11
|
const claude_code_runner_1 = require("./claude-code-runner");
|
|
44
12
|
const shared_chat_utils_1 = require("./shared-chat-utils");
|
|
@@ -53,7 +21,7 @@ Object.defineProperty(exports, "buildCleanEnv", { enumerable: true, get: functio
|
|
|
53
21
|
*
|
|
54
22
|
* activeChatMode はサーバーの chatMode ではなく、エージェント内部の実行方式を指す
|
|
55
23
|
*/
|
|
56
|
-
async function executeChatCommand(payload, commandId, client, serverConfig, activeChatMode, agentId, projectDir, projectConfig) {
|
|
24
|
+
async function executeChatCommand(payload, commandId, client, serverConfig, activeChatMode, agentId, projectDir, projectConfig, mcpConfigPath) {
|
|
57
25
|
if (!agentId) {
|
|
58
26
|
return { success: false, error: constants_1.ERR_AGENT_ID_REQUIRED };
|
|
59
27
|
}
|
|
@@ -63,7 +31,7 @@ async function executeChatCommand(payload, commandId, client, serverConfig, acti
|
|
|
63
31
|
return (0, api_chat_executor_1.executeApiChatCommand)(payload, commandId, client, serverConfig, agentId);
|
|
64
32
|
case 'claude_code':
|
|
65
33
|
default:
|
|
66
|
-
return executeClaudeCodeChat(payload, commandId, client, agentId, serverConfig, projectDir, projectConfig);
|
|
34
|
+
return executeClaudeCodeChat(payload, commandId, client, agentId, serverConfig, projectDir, projectConfig, mcpConfigPath);
|
|
67
35
|
}
|
|
68
36
|
}
|
|
69
37
|
/**
|
|
@@ -71,7 +39,7 @@ async function executeChatCommand(payload, commandId, client, serverConfig, acti
|
|
|
71
39
|
* サブプロセスとして起動し、stdout をストリーミングで読み取り、
|
|
72
40
|
* チャンクとしてAPIに送信する
|
|
73
41
|
*/
|
|
74
|
-
async function executeClaudeCodeChat(payload, commandId, client, agentId, serverConfig, projectDir, projectConfig) {
|
|
42
|
+
async function executeClaudeCodeChat(payload, commandId, client, agentId, serverConfig, projectDir, projectConfig, mcpConfigPath) {
|
|
75
43
|
const message = (0, utils_1.parseString)(payload.message);
|
|
76
44
|
if (!message) {
|
|
77
45
|
return { success: false, error: constants_1.ERR_MESSAGE_REQUIRED };
|
|
@@ -84,8 +52,7 @@ async function executeClaudeCodeChat(payload, commandId, client, agentId, server
|
|
|
84
52
|
// Merge project directory auto-add dirs with server-configured dirs
|
|
85
53
|
let addDirs;
|
|
86
54
|
if (projectDir) {
|
|
87
|
-
const
|
|
88
|
-
const autoAddDirs = getAutoAddDirs(projectDir);
|
|
55
|
+
const autoAddDirs = (0, project_dir_1.getAutoAddDirs)(projectDir);
|
|
89
56
|
addDirs = [...autoAddDirs, ...serverAddDirs];
|
|
90
57
|
}
|
|
91
58
|
else {
|
|
@@ -94,18 +61,34 @@ async function executeClaudeCodeChat(payload, commandId, client, agentId, server
|
|
|
94
61
|
const locale = (0, utils_1.parseString)(payload.locale) ?? undefined;
|
|
95
62
|
// AWS認証情報を取得(プロファイル方式 or 環境変数直接注入)
|
|
96
63
|
let awsEnv;
|
|
64
|
+
const projectCode = (0, utils_1.parseString)(payload.projectCode) ?? projectConfig?.project.projectCode;
|
|
97
65
|
if (projectDir && projectConfig?.aws?.accounts?.length) {
|
|
98
66
|
// プロファイル方式: 全アカウントの認証情報を取得してプロファイルファイルに書き込み
|
|
99
|
-
|
|
67
|
+
const awsResult = await (0, aws_credential_builder_1.buildAwsProfileCredentials)(client, projectDir, projectConfig);
|
|
68
|
+
awsEnv = awsResult.env;
|
|
69
|
+
await sendAwsCredentialNotices(awsResult, projectCode, sendChunk);
|
|
100
70
|
}
|
|
101
71
|
else {
|
|
102
72
|
// フォールバック: 単一アカウントの環境変数直接注入(従来方式)
|
|
103
73
|
const awsAccountId = (0, utils_1.parseString)(payload.awsAccountId) ?? undefined;
|
|
104
|
-
|
|
74
|
+
const awsResult = await (0, aws_credential_builder_1.buildSingleAccountAwsEnv)(client, awsAccountId);
|
|
75
|
+
awsEnv = awsResult.env;
|
|
76
|
+
await sendAwsCredentialNotices(awsResult, projectCode, sendChunk);
|
|
105
77
|
}
|
|
106
|
-
|
|
78
|
+
// 会話履歴をメッセージに埋め込む(Claude Code CLI用)
|
|
79
|
+
const history = (0, shared_chat_utils_1.parseHistory)(payload.history);
|
|
80
|
+
const messageWithHistory = (0, shared_chat_utils_1.formatHistoryForClaudeCode)(history, message);
|
|
81
|
+
const logDetails = [
|
|
82
|
+
allowedTools?.length ? `allowedTools: ${allowedTools.join(', ')}` : '(no allowedTools)',
|
|
83
|
+
addDirs?.length ? `addDirs: ${addDirs.join(', ')}` : null,
|
|
84
|
+
locale ? `locale=${locale}` : null,
|
|
85
|
+
awsEnv ? 'AWS credentials' : null,
|
|
86
|
+
mcpConfigPath ? 'MCP config' : null,
|
|
87
|
+
history.length > 0 ? `${history.length} history messages` : null,
|
|
88
|
+
].filter(Boolean).join(', ');
|
|
89
|
+
logger_1.logger.debug(`[chat] Spawning claude CLI for command [${commandId}]: ${logDetails}`);
|
|
107
90
|
logger_1.logger.debug(`[chat] serverConfig.claudeCodeConfig: ${JSON.stringify(serverConfig?.claudeCodeConfig ?? null)}`);
|
|
108
|
-
const result = await (0, claude_code_runner_1.runClaudeCode)(
|
|
91
|
+
const result = await (0, claude_code_runner_1.runClaudeCode)(messageWithHistory, sendChunk, allowedTools, addDirs, locale, awsEnv, mcpConfigPath);
|
|
109
92
|
logger_1.logger.info(`[chat] Chat command completed [${commandId}]: output=${result.text.length} chars, ${getChunkIndex()} chunks sent, duration=${result.metadata.durationMs}ms`);
|
|
110
93
|
// 完了チャンクを送信(metadata を含める)
|
|
111
94
|
const doneContent = JSON.stringify({
|
|
@@ -122,4 +105,19 @@ async function executeClaudeCodeChat(payload, commandId, client, agentId, server
|
|
|
122
105
|
return { success: false, error: errorMessage };
|
|
123
106
|
}
|
|
124
107
|
}
|
|
108
|
+
async function sendAwsCredentialNotices(awsResult, projectCode, sendChunk) {
|
|
109
|
+
if (awsResult.errors.length > 0) {
|
|
110
|
+
const notice = `⚠️ ${awsResult.errors.join('\n')}\n\n`;
|
|
111
|
+
await sendChunk('delta', notice);
|
|
112
|
+
}
|
|
113
|
+
// SSO再認証が必要なアカウントの情報を system チャンクで送信
|
|
114
|
+
for (const ssoInfo of awsResult.ssoAuthRequired) {
|
|
115
|
+
await sendChunk('system', JSON.stringify({
|
|
116
|
+
type: 'sso_auth_required',
|
|
117
|
+
accountId: ssoInfo.accountId,
|
|
118
|
+
accountName: ssoInfo.accountName,
|
|
119
|
+
projectCode,
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
125
123
|
//# sourceMappingURL=chat-executor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-executor.js","sourceRoot":"","sources":["../../src/commands/chat-executor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat-executor.js","sourceRoot":"","sources":["../../src/commands/chat-executor.ts"],"names":[],"mappings":"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"}
|