@ai-support-agent/cli 0.0.4-beta.2 → 0.0.4-beta.21
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/agent-runner.d.ts +1 -0
- package/dist/agent-runner.d.ts.map +1 -1
- package/dist/agent-runner.js +5 -5
- package/dist/agent-runner.js.map +1 -1
- package/dist/api-client.d.ts +8 -2
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +56 -53
- package/dist/api-client.js.map +1 -1
- package/dist/appsync-subscriber.d.ts.map +1 -1
- package/dist/appsync-subscriber.js +8 -2
- package/dist/appsync-subscriber.js.map +1 -1
- package/dist/auth-server.js +1 -1
- package/dist/auth-server.js.map +1 -1
- package/dist/aws-credential-builder.d.ts +24 -0
- package/dist/aws-credential-builder.d.ts.map +1 -0
- package/dist/aws-credential-builder.js +134 -0
- package/dist/aws-credential-builder.js.map +1 -0
- package/dist/aws-profile.d.ts +38 -0
- package/dist/aws-profile.d.ts.map +1 -0
- package/dist/aws-profile.js +162 -0
- package/dist/aws-profile.js.map +1 -0
- package/dist/chat-mode-detector.d.ts.map +1 -1
- package/dist/chat-mode-detector.js +2 -2
- package/dist/chat-mode-detector.js.map +1 -1
- package/dist/commands/api-chat-executor.d.ts.map +1 -1
- package/dist/commands/api-chat-executor.js +51 -18
- package/dist/commands/api-chat-executor.js.map +1 -1
- package/dist/commands/chat-executor.d.ts +3 -2
- package/dist/commands/chat-executor.d.ts.map +1 -1
- package/dist/commands/chat-executor.js +77 -107
- package/dist/commands/chat-executor.js.map +1 -1
- package/dist/commands/claude-code-runner.d.ts +26 -0
- package/dist/commands/claude-code-runner.d.ts.map +1 -0
- package/dist/commands/claude-code-runner.js +130 -0
- package/dist/commands/claude-code-runner.js.map +1 -0
- package/dist/commands/file-executor.js +1 -1
- package/dist/commands/file-executor.js.map +1 -1
- package/dist/commands/index.d.ts +6 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +16 -3
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/process-executor.js +1 -1
- package/dist/commands/process-executor.js.map +1 -1
- package/dist/commands/set-project-dir.d.ts +3 -0
- package/dist/commands/set-project-dir.d.ts.map +1 -0
- package/dist/commands/set-project-dir.js +42 -0
- package/dist/commands/set-project-dir.js.map +1 -0
- 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 +26 -1
- package/dist/commands/shared-chat-utils.js.map +1 -1
- package/dist/commands/shell-executor.js +1 -1
- package/dist/commands/shell-executor.js.map +1 -1
- package/dist/config-manager.d.ts +9 -0
- package/dist/config-manager.d.ts.map +1 -1
- package/dist/config-manager.js +24 -0
- package/dist/config-manager.js.map +1 -1
- package/dist/constants.d.ts +31 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +39 -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 +74 -0
- package/dist/index.js.map +1 -1
- package/dist/locales/en.json +25 -1
- package/dist/locales/ja.json +25 -1
- package/dist/locales/locales/en.json +25 -1
- package/dist/locales/locales/ja.json +25 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +8 -1
- package/dist/logger.js.map +1 -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 +16 -1
- package/dist/project-agent.d.ts.map +1 -1
- package/dist/project-agent.js +174 -72
- package/dist/project-agent.js.map +1 -1
- package/dist/project-config-sync.d.ts +18 -0
- package/dist/project-config-sync.d.ts.map +1 -0
- package/dist/project-config-sync.js +126 -0
- package/dist/project-config-sync.js.map +1 -0
- package/dist/project-dir.d.ts +38 -0
- package/dist/project-dir.d.ts.map +1 -0
- package/dist/project-dir.js +150 -0
- package/dist/project-dir.js.map +1 -0
- package/dist/retry-strategy.d.ts +6 -0
- package/dist/retry-strategy.d.ts.map +1 -1
- package/dist/retry-strategy.js +10 -2
- package/dist/retry-strategy.js.map +1 -1
- package/dist/security.d.ts.map +1 -1
- package/dist/security.js +2 -1
- package/dist/security.js.map +1 -1
- package/dist/types.d.ts +105 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +6 -0
- package/dist/utils.js.map +1 -1
- package/docker/Dockerfile +39 -0
- package/package.json +6 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { AwsCredentials, ProjectConfigResponse } from './types';
|
|
2
|
+
type AwsAccount = NonNullable<ProjectConfigResponse['aws']>['accounts'][number];
|
|
3
|
+
/**
|
|
4
|
+
* Generate profile name from project code and account.
|
|
5
|
+
* Uses profileName if available, otherwise falls back to name.
|
|
6
|
+
* Format: {projectCode}-{profileName|name}
|
|
7
|
+
*/
|
|
8
|
+
export declare function getProfileName(projectCode: string, account: string | {
|
|
9
|
+
name: string;
|
|
10
|
+
profileName?: string;
|
|
11
|
+
}): string;
|
|
12
|
+
/**
|
|
13
|
+
* Generate AWS config file content in INI format.
|
|
14
|
+
* Contains profile definitions with region and SSO settings (if applicable).
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateAwsConfig(projectCode: string, accounts: AwsAccount[]): string;
|
|
17
|
+
/**
|
|
18
|
+
* Write AWS config file to project's aws directory.
|
|
19
|
+
* Uses atomic write (temp + rename) with 0o600 permissions.
|
|
20
|
+
*/
|
|
21
|
+
export declare function writeAwsConfig(projectDir: string, projectCode: string, accounts: AwsAccount[]): void;
|
|
22
|
+
/**
|
|
23
|
+
* Generate AWS credentials file content in INI format.
|
|
24
|
+
*/
|
|
25
|
+
export declare function generateAwsCredentials(projectCode: string, credentialMap: Map<string, AwsCredentials>): string;
|
|
26
|
+
/**
|
|
27
|
+
* Write AWS credentials file to project's aws directory.
|
|
28
|
+
* Uses atomic write (temp + rename) with 0o600 permissions.
|
|
29
|
+
*/
|
|
30
|
+
export declare function writeAwsCredentials(projectDir: string, projectCode: string, credentialMap: Map<string, AwsCredentials>): void;
|
|
31
|
+
/**
|
|
32
|
+
* Build environment variables for Claude Code to use AWS profiles.
|
|
33
|
+
* Sets AWS_CONFIG_FILE and AWS_SHARED_CREDENTIALS_FILE to project-specific paths.
|
|
34
|
+
* Optionally sets AWS_PROFILE and AWS_DEFAULT_REGION for the default account.
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildAwsProfileEnv(projectDir: string, projectCode: string, defaultAccountName?: string, defaultRegion?: string): Record<string, string>;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=aws-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-profile.d.ts","sourceRoot":"","sources":["../src/aws-profile.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpE,KAAK,UAAU,GAAG,WAAW,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/E;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGpH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,CAuBrF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,UAAU,EAAE,GACrB,IAAI,CAiBN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GACzC,MAAM,CAoBR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GACzC,IAAI,CAiBN;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBxB"}
|
|
@@ -0,0 +1,162 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getProfileName = getProfileName;
|
|
37
|
+
exports.generateAwsConfig = generateAwsConfig;
|
|
38
|
+
exports.writeAwsConfig = writeAwsConfig;
|
|
39
|
+
exports.generateAwsCredentials = generateAwsCredentials;
|
|
40
|
+
exports.writeAwsCredentials = writeAwsCredentials;
|
|
41
|
+
exports.buildAwsProfileEnv = buildAwsProfileEnv;
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const project_dir_1 = require("./project-dir");
|
|
45
|
+
const logger_1 = require("./logger");
|
|
46
|
+
/**
|
|
47
|
+
* Generate profile name from project code and account.
|
|
48
|
+
* Uses profileName if available, otherwise falls back to name.
|
|
49
|
+
* Format: {projectCode}-{profileName|name}
|
|
50
|
+
*/
|
|
51
|
+
function getProfileName(projectCode, account) {
|
|
52
|
+
const suffix = typeof account === 'string' ? account : (account.profileName || account.name);
|
|
53
|
+
return `${projectCode}-${suffix}`;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Generate AWS config file content in INI format.
|
|
57
|
+
* Contains profile definitions with region and SSO settings (if applicable).
|
|
58
|
+
*/
|
|
59
|
+
function generateAwsConfig(projectCode, accounts) {
|
|
60
|
+
const lines = [
|
|
61
|
+
`# Auto-generated by ai-support-agent for project: ${projectCode}`,
|
|
62
|
+
`# Do not edit manually - this file is overwritten on config sync`,
|
|
63
|
+
'',
|
|
64
|
+
];
|
|
65
|
+
for (const account of accounts) {
|
|
66
|
+
const profileName = getProfileName(projectCode, account);
|
|
67
|
+
lines.push(`[profile ${profileName}]`);
|
|
68
|
+
lines.push(`region = ${account.region}`);
|
|
69
|
+
if (account.auth.method === 'sso') {
|
|
70
|
+
lines.push(`sso_start_url = ${account.auth.startUrl}`);
|
|
71
|
+
lines.push(`sso_region = ${account.auth.ssoRegion}`);
|
|
72
|
+
lines.push(`sso_account_id = ${account.accountId}`);
|
|
73
|
+
lines.push(`sso_role_name = ${account.auth.permissionSetName}`);
|
|
74
|
+
}
|
|
75
|
+
lines.push('');
|
|
76
|
+
}
|
|
77
|
+
return lines.join('\n');
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Write AWS config file to project's aws directory.
|
|
81
|
+
* Uses atomic write (temp + rename) with 0o600 permissions.
|
|
82
|
+
*/
|
|
83
|
+
function writeAwsConfig(projectDir, projectCode, accounts) {
|
|
84
|
+
try {
|
|
85
|
+
const awsDir = (0, project_dir_1.getAwsDir)(projectDir);
|
|
86
|
+
if (!fs.existsSync(awsDir)) {
|
|
87
|
+
fs.mkdirSync(awsDir, { recursive: true, mode: 0o700 });
|
|
88
|
+
}
|
|
89
|
+
const content = generateAwsConfig(projectCode, accounts);
|
|
90
|
+
const configPath = path.join(awsDir, 'config');
|
|
91
|
+
const tmpPath = configPath + '.tmp';
|
|
92
|
+
fs.writeFileSync(tmpPath, content, { mode: 0o600 });
|
|
93
|
+
fs.renameSync(tmpPath, configPath);
|
|
94
|
+
logger_1.logger.debug(`AWS config written to ${configPath} (${accounts.length} profiles)`);
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
logger_1.logger.warn(`Failed to write AWS config: ${error}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Generate AWS credentials file content in INI format.
|
|
102
|
+
*/
|
|
103
|
+
function generateAwsCredentials(projectCode, credentialMap) {
|
|
104
|
+
const lines = [
|
|
105
|
+
`# Auto-generated by ai-support-agent for project: ${projectCode}`,
|
|
106
|
+
`# Do not edit manually - this file is overwritten on each chat command`,
|
|
107
|
+
'',
|
|
108
|
+
];
|
|
109
|
+
for (const [accountName, creds] of credentialMap) {
|
|
110
|
+
const profileName = getProfileName(projectCode, accountName);
|
|
111
|
+
lines.push(`[${profileName}]`);
|
|
112
|
+
lines.push(`aws_access_key_id = ${creds.accessKeyId}`);
|
|
113
|
+
lines.push(`aws_secret_access_key = ${creds.secretAccessKey}`);
|
|
114
|
+
if (creds.sessionToken) {
|
|
115
|
+
lines.push(`aws_session_token = ${creds.sessionToken}`);
|
|
116
|
+
}
|
|
117
|
+
lines.push(`region = ${creds.region}`);
|
|
118
|
+
lines.push('');
|
|
119
|
+
}
|
|
120
|
+
return lines.join('\n');
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Write AWS credentials file to project's aws directory.
|
|
124
|
+
* Uses atomic write (temp + rename) with 0o600 permissions.
|
|
125
|
+
*/
|
|
126
|
+
function writeAwsCredentials(projectDir, projectCode, credentialMap) {
|
|
127
|
+
try {
|
|
128
|
+
const awsDir = (0, project_dir_1.getAwsDir)(projectDir);
|
|
129
|
+
if (!fs.existsSync(awsDir)) {
|
|
130
|
+
fs.mkdirSync(awsDir, { recursive: true, mode: 0o700 });
|
|
131
|
+
}
|
|
132
|
+
const content = generateAwsCredentials(projectCode, credentialMap);
|
|
133
|
+
const credentialsPath = path.join(awsDir, 'credentials');
|
|
134
|
+
const tmpPath = credentialsPath + '.tmp';
|
|
135
|
+
fs.writeFileSync(tmpPath, content, { mode: 0o600 });
|
|
136
|
+
fs.renameSync(tmpPath, credentialsPath);
|
|
137
|
+
logger_1.logger.debug(`AWS credentials written to ${credentialsPath} (${credentialMap.size} profiles)`);
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
logger_1.logger.warn(`Failed to write AWS credentials: ${error}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Build environment variables for Claude Code to use AWS profiles.
|
|
145
|
+
* Sets AWS_CONFIG_FILE and AWS_SHARED_CREDENTIALS_FILE to project-specific paths.
|
|
146
|
+
* Optionally sets AWS_PROFILE and AWS_DEFAULT_REGION for the default account.
|
|
147
|
+
*/
|
|
148
|
+
function buildAwsProfileEnv(projectDir, projectCode, defaultAccountName, defaultRegion) {
|
|
149
|
+
const awsDir = (0, project_dir_1.getAwsDir)(projectDir);
|
|
150
|
+
const env = {
|
|
151
|
+
AWS_CONFIG_FILE: path.join(awsDir, 'config'),
|
|
152
|
+
AWS_SHARED_CREDENTIALS_FILE: path.join(awsDir, 'credentials'),
|
|
153
|
+
};
|
|
154
|
+
if (defaultAccountName) {
|
|
155
|
+
env.AWS_PROFILE = getProfileName(projectCode, defaultAccountName);
|
|
156
|
+
}
|
|
157
|
+
if (defaultRegion) {
|
|
158
|
+
env.AWS_DEFAULT_REGION = defaultRegion;
|
|
159
|
+
}
|
|
160
|
+
return env;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=aws-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-profile.js","sourceRoot":"","sources":["../src/aws-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-mode-detector.d.ts","sourceRoot":"","sources":["../src/chat-mode-detector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat-mode-detector.d.ts","sourceRoot":"","sources":["../src/chat-mode-detector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C;;;;GAIG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAgBzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,EAAE,EAC1B,aAAa,CAAC,EAAE,aAAa,EAC7B,aAAa,CAAC,EAAE,aAAa,GAC5B,aAAa,GAAG,SAAS,CAkC3B"}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.detectAvailableChatModes = detectAvailableChatModes;
|
|
4
4
|
exports.resolveActiveChatMode = resolveActiveChatMode;
|
|
5
5
|
const child_process_1 = require("child_process");
|
|
6
|
+
const constants_1 = require("./constants");
|
|
6
7
|
const logger_1 = require("./logger");
|
|
7
|
-
const CLAUDE_DETECT_TIMEOUT_MS = 5_000;
|
|
8
8
|
/**
|
|
9
9
|
* 利用可能なチャットモードを検出する
|
|
10
10
|
* - claude CLI の存在確認(5秒タイムアウト)
|
|
@@ -68,7 +68,7 @@ function resolveActiveChatMode(available, localOverride, serverDefault) {
|
|
|
68
68
|
async function isClaudeCodeAvailable() {
|
|
69
69
|
return new Promise((resolve) => {
|
|
70
70
|
try {
|
|
71
|
-
const child = (0, child_process_1.execFile)('claude', ['--version'], { timeout: CLAUDE_DETECT_TIMEOUT_MS }, (error) => {
|
|
71
|
+
const child = (0, child_process_1.execFile)('claude', ['--version'], { timeout: constants_1.CLAUDE_DETECT_TIMEOUT_MS }, (error) => {
|
|
72
72
|
resolve(!error);
|
|
73
73
|
});
|
|
74
74
|
child.on('error', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-mode-detector.js","sourceRoot":"","sources":["../src/chat-mode-detector.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"chat-mode-detector.js","sourceRoot":"","sources":["../src/chat-mode-detector.ts"],"names":[],"mappings":";;AAWA,4DAgBC;AAYD,sDAsCC;AA7ED,iDAAwC;AAExC,2CAAsD;AACtD,qCAAiC;AAGjC;;;;GAIG;AACI,KAAK,UAAU,wBAAwB;IAC5C,MAAM,KAAK,GAAoB,EAAE,CAAA;IAEjC,sBAAsB;IACtB,MAAM,eAAe,GAAG,MAAM,qBAAqB,EAAE,CAAA;IACrD,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC3B,CAAC;IAED,wBAAwB;IACxB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnB,CAAC;IAED,eAAM,CAAC,KAAK,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC9E,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CACnC,SAA0B,EAC1B,aAA6B,EAC7B,aAA6B;IAE7B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,eAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;QAC3D,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,YAAY;IACZ,IAAI,aAAa,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACvD,eAAM,CAAC,KAAK,CAAC,8CAA8C,aAAa,EAAE,CAAC,CAAA;QAC3E,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,eAAM,CAAC,IAAI,CACT,wCAAwC,aAAa,+BAA+B,CACrF,CAAA;IACH,CAAC;IAED,YAAY;IACZ,IAAI,aAAa,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACvD,eAAM,CAAC,KAAK,CAAC,8CAA8C,aAAa,EAAE,CAAC,CAAA;QAC3E,OAAO,aAAa,CAAA;IACtB,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,eAAM,CAAC,IAAI,CACT,wCAAwC,aAAa,+BAA+B,CACrF,CAAA;IACH,CAAC;IAED,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC;QAChD,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAChB,eAAM,CAAC,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAA;IAC/D,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,qBAAqB;IAClC,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAA,wBAAQ,EACpB,QAAQ,EACR,CAAC,WAAW,CAAC,EACb,EAAE,OAAO,EAAE,oCAAwB,EAAE,EACrC,CAAC,KAAK,EAAE,EAAE;gBACR,OAAO,CAAC,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC,CACF,CAAA;YACD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACrB,OAAO,CAAC,KAAK,CAAC,CAAA;YAChB,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -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;
|
|
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"}
|
|
@@ -5,39 +5,49 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.executeApiChatCommand = executeApiChatCommand;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const constants_1 = require("../constants");
|
|
8
9
|
const logger_1 = require("../logger");
|
|
9
10
|
const utils_1 = require("../utils");
|
|
10
11
|
const shared_chat_utils_1 = require("./shared-chat-utils");
|
|
11
|
-
const DEFAULT_MODEL = 'claude-sonnet-4-6-20250514';
|
|
12
12
|
/**
|
|
13
13
|
* Anthropic API を直接呼び出してチャットメッセージを処理する
|
|
14
14
|
* エージェントが持つ ANTHROPIC_API_KEY で Claude を呼び出す
|
|
15
15
|
*/
|
|
16
16
|
async function executeApiChatCommand(payload, commandId, client, config, agentId) {
|
|
17
17
|
if (!agentId) {
|
|
18
|
-
return { success: false, error:
|
|
18
|
+
return { success: false, error: constants_1.ERR_AGENT_ID_REQUIRED };
|
|
19
19
|
}
|
|
20
20
|
const message = (0, utils_1.parseString)(payload.message);
|
|
21
21
|
if (!message) {
|
|
22
|
-
return { success: false, error:
|
|
22
|
+
return { success: false, error: constants_1.ERR_MESSAGE_REQUIRED };
|
|
23
23
|
}
|
|
24
24
|
const apiKey = process.env.ANTHROPIC_API_KEY;
|
|
25
25
|
if (!apiKey) {
|
|
26
26
|
return {
|
|
27
27
|
success: false,
|
|
28
|
-
error:
|
|
28
|
+
error: constants_1.ERR_ANTHROPIC_API_KEY_NOT_SET,
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
logger_1.logger.info(`[api-chat] Starting API chat command [${commandId}]: message="${
|
|
31
|
+
logger_1.logger.info(`[api-chat] Starting API chat command [${commandId}]: message="${(0, utils_1.truncateString)(message, constants_1.LOG_MESSAGE_LIMIT)}"`);
|
|
32
32
|
const { sendChunk, getChunkIndex } = (0, shared_chat_utils_1.createChunkSender)(commandId, client, agentId, 'api-chat');
|
|
33
33
|
try {
|
|
34
|
-
const model = config?.claudeCodeConfig?.model ??
|
|
35
|
-
const maxTokens = config?.claudeCodeConfig?.maxTokens ??
|
|
34
|
+
const model = config?.claudeCodeConfig?.model ?? constants_1.DEFAULT_ANTHROPIC_MODEL;
|
|
35
|
+
const maxTokens = config?.claudeCodeConfig?.maxTokens ?? constants_1.DEFAULT_MAX_TOKENS;
|
|
36
36
|
const systemPrompt = config?.claudeCodeConfig?.systemPrompt;
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
const historyMessages = (0, shared_chat_utils_1.parseHistory)(payload.history);
|
|
38
|
+
const result = await callAnthropicApi(apiKey, message, model, maxTokens, systemPrompt, sendChunk, historyMessages);
|
|
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}`);
|
|
40
|
+
// done チャンクに usage 情報を含める
|
|
41
|
+
const doneContent = JSON.stringify({
|
|
42
|
+
text: result.text,
|
|
43
|
+
usage: {
|
|
44
|
+
totalInputTokens: result.usage.inputTokens,
|
|
45
|
+
totalOutputTokens: result.usage.outputTokens,
|
|
46
|
+
totalTokens: result.usage.inputTokens + result.usage.outputTokens,
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
await sendChunk('done', doneContent);
|
|
50
|
+
return { success: true, data: result.text };
|
|
41
51
|
}
|
|
42
52
|
catch (error) {
|
|
43
53
|
const errorMessage = (0, utils_1.getErrorMessage)(error);
|
|
@@ -49,28 +59,36 @@ async function executeApiChatCommand(payload, commandId, client, config, agentId
|
|
|
49
59
|
/**
|
|
50
60
|
* Anthropic Messages API を呼び出し、ストリーミングレスポンスを処理する
|
|
51
61
|
*/
|
|
52
|
-
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
|
+
];
|
|
53
70
|
const body = {
|
|
54
71
|
model,
|
|
55
72
|
max_tokens: maxTokens,
|
|
56
73
|
stream: true,
|
|
57
|
-
messages
|
|
74
|
+
messages,
|
|
58
75
|
};
|
|
59
76
|
if (systemPrompt) {
|
|
60
77
|
body.system = systemPrompt;
|
|
61
78
|
}
|
|
62
|
-
const response = await axios_1.default.post(
|
|
79
|
+
const response = await axios_1.default.post(constants_1.ANTHROPIC_API_URL, body, {
|
|
63
80
|
headers: {
|
|
64
81
|
'x-api-key': apiKey,
|
|
65
|
-
'anthropic-version':
|
|
82
|
+
'anthropic-version': constants_1.ANTHROPIC_API_VERSION,
|
|
66
83
|
'content-type': 'application/json',
|
|
67
84
|
},
|
|
68
85
|
responseType: 'stream',
|
|
69
|
-
timeout:
|
|
86
|
+
timeout: constants_1.CHAT_TIMEOUT,
|
|
70
87
|
});
|
|
71
88
|
return new Promise((resolve, reject) => {
|
|
72
89
|
let fullOutput = '';
|
|
73
90
|
let buffer = '';
|
|
91
|
+
const usage = { inputTokens: 0, outputTokens: 0 };
|
|
74
92
|
const stream = response.data;
|
|
75
93
|
stream.on('data', (chunk) => {
|
|
76
94
|
buffer += chunk.toString();
|
|
@@ -85,7 +103,22 @@ async function callAnthropicApi(apiKey, message, model, maxTokens, systemPrompt,
|
|
|
85
103
|
continue;
|
|
86
104
|
try {
|
|
87
105
|
const event = JSON.parse(data);
|
|
88
|
-
if (event.type === '
|
|
106
|
+
if (event.type === 'message_start') {
|
|
107
|
+
// message_start イベントから input_tokens を取得
|
|
108
|
+
const msg = event.message;
|
|
109
|
+
const msgUsage = msg?.usage;
|
|
110
|
+
if (typeof msgUsage?.input_tokens === 'number') {
|
|
111
|
+
usage.inputTokens = msgUsage.input_tokens;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else if (event.type === 'message_delta') {
|
|
115
|
+
// message_delta イベントから output_tokens を取得
|
|
116
|
+
const deltaUsage = event.usage;
|
|
117
|
+
if (typeof deltaUsage?.output_tokens === 'number') {
|
|
118
|
+
usage.outputTokens = deltaUsage.output_tokens;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else if (event.type === 'content_block_delta') {
|
|
89
122
|
const delta = event.delta;
|
|
90
123
|
if (delta?.type === 'text_delta' && typeof delta.text === 'string') {
|
|
91
124
|
fullOutput += delta.text;
|
|
@@ -107,7 +140,7 @@ async function callAnthropicApi(apiKey, message, model, maxTokens, systemPrompt,
|
|
|
107
140
|
}
|
|
108
141
|
});
|
|
109
142
|
stream.on('end', () => {
|
|
110
|
-
resolve(fullOutput);
|
|
143
|
+
resolve({ text: fullOutput, usage });
|
|
111
144
|
});
|
|
112
145
|
stream.on('error', (error) => {
|
|
113
146
|
reject(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-chat-executor.js","sourceRoot":"","sources":["../../src/commands/api-chat-executor.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"api-chat-executor.js","sourceRoot":"","sources":["../../src/commands/api-chat-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ApiClient } from '../api-client';
|
|
2
|
-
import type { AgentChatMode, AgentServerConfig, ChatPayload, CommandResult } from '../types';
|
|
2
|
+
import type { AgentChatMode, AgentServerConfig, ChatPayload, CommandResult, ProjectConfigResponse } from '../types';
|
|
3
|
+
export { buildClaudeArgs, buildCleanEnv } from './claude-code-runner';
|
|
3
4
|
/**
|
|
4
5
|
* エージェントチャットモードに応じてチャットメッセージを処理する
|
|
5
6
|
* - claude_code: Claude Code CLI を使用(デフォルト)
|
|
@@ -7,5 +8,5 @@ import type { AgentChatMode, AgentServerConfig, ChatPayload, CommandResult } fro
|
|
|
7
8
|
*
|
|
8
9
|
* activeChatMode はサーバーの chatMode ではなく、エージェント内部の実行方式を指す
|
|
9
10
|
*/
|
|
10
|
-
export declare function executeChatCommand(payload: ChatPayload, commandId: string, client: ApiClient, serverConfig?: AgentServerConfig, activeChatMode?: AgentChatMode, agentId?: string): 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>;
|
|
11
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":"
|
|
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"}
|