@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,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerSetProjectDirCommand = registerSetProjectDirCommand;
|
|
4
|
+
const config_manager_1 = require("../config-manager");
|
|
5
|
+
const i18n_1 = require("../i18n");
|
|
6
|
+
const logger_1 = require("../logger");
|
|
7
|
+
const project_dir_1 = require("../project-dir");
|
|
8
|
+
function registerSetProjectDirCommand(program) {
|
|
9
|
+
program
|
|
10
|
+
.command('set-project-dir')
|
|
11
|
+
.description((0, i18n_1.t)('cmd.setProjectDir'))
|
|
12
|
+
.option('--project <code>', (0, i18n_1.t)('cmd.setProjectDir.project'))
|
|
13
|
+
.option('--path <path>', (0, i18n_1.t)('cmd.setProjectDir.path'))
|
|
14
|
+
.option('--default <template>', (0, i18n_1.t)('cmd.setProjectDir.default'))
|
|
15
|
+
.action((opts) => {
|
|
16
|
+
if (opts.default) {
|
|
17
|
+
(0, config_manager_1.setDefaultProjectDir)(opts.default);
|
|
18
|
+
logger_1.logger.success((0, i18n_1.t)('projectDir.defaultSet', { template: opts.default }));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (opts.project && opts.path) {
|
|
22
|
+
const config = (0, config_manager_1.loadConfig)();
|
|
23
|
+
const project = config?.projects?.find((p) => p.projectCode === opts.project);
|
|
24
|
+
if (!project) {
|
|
25
|
+
logger_1.logger.error((0, i18n_1.t)('projectDir.noProject', { projectCode: opts.project }));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const result = (0, config_manager_1.setProjectDir)(opts.project, opts.path);
|
|
29
|
+
if (result) {
|
|
30
|
+
const resolvedDir = (0, project_dir_1.resolveProjectDir)({ ...project, projectDir: opts.path }, config?.defaultProjectDir);
|
|
31
|
+
(0, project_dir_1.ensureProjectDirs)(resolvedDir);
|
|
32
|
+
logger_1.logger.success((0, i18n_1.t)('projectDir.set', { projectCode: opts.project, projectDir: resolvedDir }));
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
logger_1.logger.error((0, i18n_1.t)('projectDir.noProject', { projectCode: opts.project }));
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
logger_1.logger.error((0, i18n_1.t)('projectDir.usageHint'));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=set-project-dir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-project-dir.js","sourceRoot":"","sources":["../../src/commands/set-project-dir.ts"],"names":[],"mappings":";;AAOA,oEAmCC;AAxCD,sDAAmF;AACnF,kCAA2B;AAC3B,sCAAkC;AAClC,gDAAqE;AAErE,SAAgB,4BAA4B,CAAC,OAAgB;IAC3D,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,IAAA,QAAC,EAAC,mBAAmB,CAAC,CAAC;SACnC,MAAM,CAAC,kBAAkB,EAAE,IAAA,QAAC,EAAC,2BAA2B,CAAC,CAAC;SAC1D,MAAM,CAAC,eAAe,EAAE,IAAA,QAAC,EAAC,wBAAwB,CAAC,CAAC;SACpD,MAAM,CAAC,sBAAsB,EAAE,IAAA,QAAC,EAAC,2BAA2B,CAAC,CAAC;SAC9D,MAAM,CAAC,CAAC,IAA2D,EAAE,EAAE;QACtE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAA,qCAAoB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAClC,eAAM,CAAC,OAAO,CAAC,IAAA,QAAC,EAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;YACtE,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAA,2BAAU,GAAE,CAAA;YAC3B,MAAM,OAAO,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;YAC7E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,sBAAsB,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,OAAQ,EAAE,CAAC,CAAC,CAAA;gBACvE,OAAM;YACR,CAAC;YAED,MAAM,MAAM,GAAG,IAAA,8BAAa,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YACrD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAA;gBACvG,IAAA,+BAAiB,EAAC,WAAW,CAAC,CAAA;gBAC9B,eAAM,CAAC,OAAO,CAAC,IAAA,QAAC,EAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;YAC7F,CAAC;iBAAM,CAAC;gBACN,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,sBAAsB,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,OAAQ,EAAE,CAAC,CAAC,CAAA;YACzE,CAAC;YACD,OAAM;QACR,CAAC;QAED,eAAM,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,sBAAsB,CAAC,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { ApiClient } from '../api-client';
|
|
2
|
-
import type { ChatChunkType } from '../types';
|
|
2
|
+
import type { ChatChunkType, HistoryMessage } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* 外部からのhistoryデータをパースし、有効なHistoryMessage配列を返す
|
|
5
|
+
*/
|
|
6
|
+
export declare function parseHistory(history: unknown): HistoryMessage[];
|
|
7
|
+
/**
|
|
8
|
+
* Claude Code CLI 向けに会話履歴をメッセージに埋め込む
|
|
9
|
+
*/
|
|
10
|
+
export declare function formatHistoryForClaudeCode(history: HistoryMessage[], currentMessage: string): string;
|
|
3
11
|
export interface ChunkSenderOptions {
|
|
4
12
|
debugLog?: boolean;
|
|
5
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-chat-utils.d.ts","sourceRoot":"","sources":["../../src/commands/shared-chat-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"shared-chat-utils.d.ts","sourceRoot":"","sources":["../../src/commands/shared-chat-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAGzC,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAG7D;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,EAAE,CAS/D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,cAAc,EAAE,EACzB,cAAc,EAAE,MAAM,GACrB,MAAM,CAMR;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,kBAAkB,GAC3B;IACD,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,aAAa,EAAE,MAAM,MAAM,CAAA;CAC5B,CAsBA"}
|
|
@@ -1,8 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseHistory = parseHistory;
|
|
4
|
+
exports.formatHistoryForClaudeCode = formatHistoryForClaudeCode;
|
|
3
5
|
exports.createChunkSender = createChunkSender;
|
|
6
|
+
const constants_1 = require("../constants");
|
|
4
7
|
const logger_1 = require("../logger");
|
|
5
8
|
const utils_1 = require("../utils");
|
|
9
|
+
/**
|
|
10
|
+
* 外部からのhistoryデータをパースし、有効なHistoryMessage配列を返す
|
|
11
|
+
*/
|
|
12
|
+
function parseHistory(history) {
|
|
13
|
+
if (!Array.isArray(history))
|
|
14
|
+
return [];
|
|
15
|
+
return history.filter((item) => typeof item === 'object' &&
|
|
16
|
+
item !== null &&
|
|
17
|
+
typeof item.role === 'string' &&
|
|
18
|
+
typeof item.content === 'string').map(({ role, content }) => ({ role, content }));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Claude Code CLI 向けに会話履歴をメッセージに埋め込む
|
|
22
|
+
*/
|
|
23
|
+
function formatHistoryForClaudeCode(history, currentMessage) {
|
|
24
|
+
if (history.length === 0)
|
|
25
|
+
return currentMessage;
|
|
26
|
+
const historyBlock = history
|
|
27
|
+
.map((msg) => `[${msg.role}]: ${msg.content}`)
|
|
28
|
+
.join('\n\n');
|
|
29
|
+
return `<conversation_history>\n${historyBlock}\n</conversation_history>\n\n${currentMessage}`;
|
|
30
|
+
}
|
|
6
31
|
/**
|
|
7
32
|
* チャンクを送信する関数を生成するファクトリ
|
|
8
33
|
*
|
|
@@ -18,7 +43,7 @@ function createChunkSender(commandId, client, agentId, logTag, options) {
|
|
|
18
43
|
const sendChunk = async (type, content) => {
|
|
19
44
|
try {
|
|
20
45
|
if (options?.debugLog) {
|
|
21
|
-
logger_1.logger.debug(`[${logTag}] Sending chunk #${chunkIndex} (${type}) [${commandId}]: ${
|
|
46
|
+
logger_1.logger.debug(`[${logTag}] Sending chunk #${chunkIndex} (${type}) [${commandId}]: ${(0, utils_1.truncateString)(content, constants_1.CHUNK_LOG_LIMIT)}`);
|
|
22
47
|
}
|
|
23
48
|
await client.submitChatChunk(commandId, {
|
|
24
49
|
index: chunkIndex++,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-chat-utils.js","sourceRoot":"","sources":["../../src/commands/shared-chat-utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"shared-chat-utils.js","sourceRoot":"","sources":["../../src/commands/shared-chat-utils.ts"],"names":[],"mappings":";;AASA,oCASC;AAKD,gEASC;AAgBD,8CA+BC;AA9ED,4CAA8C;AAC9C,sCAAkC;AAElC,oCAA0D;AAE1D;;GAEG;AACH,SAAgB,YAAY,CAAC,OAAgB;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAA;IACtC,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,IAAI,EAA0B,EAAE,CAC/B,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CACnC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;AACnD,CAAC;AAED;;GAEG;AACH,SAAgB,0BAA0B,CACxC,OAAyB,EACzB,cAAsB;IAEtB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAA;IAC/C,MAAM,YAAY,GAAG,OAAO;SACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;SAC7C,IAAI,CAAC,MAAM,CAAC,CAAA;IACf,OAAO,2BAA2B,YAAY,gCAAgC,cAAc,EAAE,CAAA;AAChG,CAAC;AAMD;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAC/B,SAAiB,EACjB,MAAiB,EACjB,OAAe,EACf,MAAc,EACd,OAA4B;IAK5B,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,MAAM,SAAS,GAAG,KAAK,EACrB,IAAmB,EACnB,OAAe,EACA,EAAE;QACjB,IAAI,CAAC;YACH,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;gBACtB,eAAM,CAAC,KAAK,CAAC,IAAI,MAAM,oBAAoB,UAAU,KAAK,IAAI,MAAM,SAAS,MAAM,IAAA,sBAAc,EAAC,OAAO,EAAE,2BAAe,CAAC,EAAE,CAAC,CAAA;YAChI,CAAC;YACD,MAAM,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE;gBACtC,KAAK,EAAE,UAAU,EAAE;gBACnB,IAAI;gBACJ,OAAO;aACR,EAAE,OAAO,CAAC,CAAA;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,IAAI,MAAM,2BAA2B,UAAU,GAAG,CAAC,KAAK,IAAA,uBAAe,EAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC,CAAA;IAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,CAAA;AACvD,CAAC"}
|
|
@@ -42,7 +42,7 @@ const utils_1 = require("../utils");
|
|
|
42
42
|
async function executeShellCommand(payload) {
|
|
43
43
|
const command = (0, utils_1.parseString)(payload.command);
|
|
44
44
|
if (!command) {
|
|
45
|
-
return { success: false, error:
|
|
45
|
+
return { success: false, error: constants_1.ERR_NO_COMMAND_SPECIFIED };
|
|
46
46
|
}
|
|
47
47
|
const validationError = (0, security_1.validateCommand)(command);
|
|
48
48
|
if (validationError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-executor.js","sourceRoot":"","sources":["../../src/commands/shell-executor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,kDA6FC;AArGD,iDAAqC;AACrC,uCAAwB;AAExB,
|
|
1
|
+
{"version":3,"file":"shell-executor.js","sourceRoot":"","sources":["../../src/commands/shell-executor.ts"],"names":[],"mappings":"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"}
|
package/dist/config-manager.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AgentConfig, ProjectRegistration } from './types';
|
|
2
|
+
export declare function getConfigDir(): string;
|
|
2
3
|
export declare function loadConfig(): AgentConfig | null;
|
|
3
4
|
export declare function saveConfig(config: Partial<AgentConfig>): void;
|
|
4
5
|
export declare function getOrCreateAgentId(): string;
|
|
@@ -15,4 +16,12 @@ export declare function removeProject(projectCode: string): boolean;
|
|
|
15
16
|
* Get registered project list
|
|
16
17
|
*/
|
|
17
18
|
export declare function getProjectList(config: AgentConfig): ProjectRegistration[];
|
|
19
|
+
/**
|
|
20
|
+
* Set projectDir for a specific project
|
|
21
|
+
*/
|
|
22
|
+
export declare function setProjectDir(projectCode: string, projectDir: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Set default project directory template
|
|
25
|
+
*/
|
|
26
|
+
export declare function setDefaultProjectDir(template: string): void;
|
|
18
27
|
//# sourceMappingURL=config-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAqB,mBAAmB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAqB,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElF,wBAAgB,YAAY,IAAI,MAAM,CAKrC;AA4CD,wBAAgB,UAAU,IAAI,WAAW,GAAG,IAAI,CAa/C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAuB7D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAQ3C;AAED,wBAAgB,WAAW,IAAI,IAAI,CAKlC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAYlE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAS1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,GAClB,mBAAmB,EAAE,CAEvB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAU9E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE3D"}
|
package/dist/config-manager.js
CHANGED
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getConfigDir = getConfigDir;
|
|
36
37
|
exports.loadConfig = loadConfig;
|
|
37
38
|
exports.saveConfig = saveConfig;
|
|
38
39
|
exports.getOrCreateAgentId = getOrCreateAgentId;
|
|
@@ -40,6 +41,8 @@ exports.clearConfig = clearConfig;
|
|
|
40
41
|
exports.addProject = addProject;
|
|
41
42
|
exports.removeProject = removeProject;
|
|
42
43
|
exports.getProjectList = getProjectList;
|
|
44
|
+
exports.setProjectDir = setProjectDir;
|
|
45
|
+
exports.setDefaultProjectDir = setDefaultProjectDir;
|
|
43
46
|
const fs = __importStar(require("fs"));
|
|
44
47
|
const os = __importStar(require("os"));
|
|
45
48
|
const path = __importStar(require("path"));
|
|
@@ -123,6 +126,7 @@ function saveConfig(config) {
|
|
|
123
126
|
projects: config.projects ?? existing?.projects,
|
|
124
127
|
autoUpdate: config.autoUpdate ?? existing?.autoUpdate,
|
|
125
128
|
agentChatMode: config.agentChatMode ?? existing?.agentChatMode,
|
|
129
|
+
defaultProjectDir: config.defaultProjectDir ?? existing?.defaultProjectDir,
|
|
126
130
|
};
|
|
127
131
|
const configPath = getConfigPath();
|
|
128
132
|
writeConfigFile(configPath, merged);
|
|
@@ -177,4 +181,24 @@ function removeProject(projectCode) {
|
|
|
177
181
|
function getProjectList(config) {
|
|
178
182
|
return config.projects ?? [];
|
|
179
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Set projectDir for a specific project
|
|
186
|
+
*/
|
|
187
|
+
function setProjectDir(projectCode, projectDir) {
|
|
188
|
+
const config = loadConfig();
|
|
189
|
+
const projects = config?.projects ?? [];
|
|
190
|
+
const project = projects.find((p) => p.projectCode === projectCode);
|
|
191
|
+
if (!project) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
project.projectDir = projectDir;
|
|
195
|
+
saveConfig({ projects });
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Set default project directory template
|
|
200
|
+
*/
|
|
201
|
+
function setDefaultProjectDir(template) {
|
|
202
|
+
saveConfig({ defaultProjectDir: template });
|
|
203
|
+
}
|
|
180
204
|
//# sourceMappingURL=config-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -23,6 +23,31 @@ export declare const PROJECT_CODE_ENV_DEFAULT = "env-default";
|
|
|
23
23
|
export declare const UPDATE_CHECK_INTERVAL: number;
|
|
24
24
|
export declare const UPDATE_CHECK_INITIAL_DELAY = 30000;
|
|
25
25
|
export declare const NPM_INSTALL_TIMEOUT = 120000;
|
|
26
|
+
export declare const DEFAULT_ANTHROPIC_MODEL = "claude-sonnet-4-6-20250514";
|
|
27
|
+
export declare const ANTHROPIC_API_VERSION = "2023-06-01";
|
|
28
|
+
export declare const ANTHROPIC_API_URL = "https://api.anthropic.com/v1/messages";
|
|
29
|
+
export declare const DEFAULT_MAX_TOKENS = 4096;
|
|
30
|
+
export declare const CHAT_TIMEOUT = 120000;
|
|
31
|
+
export declare const CHAT_SIGKILL_DELAY = 5000;
|
|
32
|
+
export declare const CLAUDE_DETECT_TIMEOUT_MS = 5000;
|
|
33
|
+
export declare const DEFAULT_APPSYNC_TIMEOUT_MS = 300000;
|
|
34
|
+
export declare const LOG_MESSAGE_LIMIT = 100;
|
|
35
|
+
export declare const LOG_PAYLOAD_LIMIT = 500;
|
|
36
|
+
export declare const LOG_RESULT_LIMIT = 300;
|
|
37
|
+
export declare const LOG_DEBUG_LIMIT = 200;
|
|
38
|
+
export declare const CHUNK_LOG_LIMIT = 100;
|
|
39
|
+
export declare const ERR_AGENT_ID_REQUIRED = "agentId is required for chat command";
|
|
40
|
+
export declare const ERR_MESSAGE_REQUIRED = "message is required";
|
|
41
|
+
export declare const ERR_NO_COMMAND_SPECIFIED = "No command specified";
|
|
42
|
+
export declare const ERR_NO_CONTENT_SPECIFIED = "No content specified";
|
|
43
|
+
export declare const ERR_NO_FILE_PATH_SPECIFIED = "No file path specified";
|
|
44
|
+
export declare const ERR_INVALID_PID = "Invalid PID: must be a positive integer";
|
|
45
|
+
export declare const ERR_ANTHROPIC_API_KEY_NOT_SET = "ANTHROPIC_API_KEY is not set. API chat mode requires an Anthropic API key.";
|
|
46
|
+
export declare const ERR_AUTH_SERVER_START_FAILED = "Failed to start auth server";
|
|
47
|
+
export declare const ERR_CLAUDE_CLI_NOT_FOUND = "claude CLI \u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002Claude Code \u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002";
|
|
48
|
+
export declare const ERR_CHAT_REQUIRES_CLIENT = "chat command requires commandId and client";
|
|
49
|
+
export declare const ERR_SETUP_REQUIRES_CALLBACK = "setup command requires onSetup callback";
|
|
50
|
+
export declare const ERR_CONFIG_SYNC_REQUIRES_CALLBACK = "config_sync command requires onConfigSync callback";
|
|
26
51
|
export declare const API_ENDPOINTS: {
|
|
27
52
|
readonly REGISTER: "/api/agent/register";
|
|
28
53
|
readonly HEARTBEAT: "/api/agent/heartbeat";
|
|
@@ -33,5 +58,11 @@ export declare const API_ENDPOINTS: {
|
|
|
33
58
|
readonly VERSION: "/api/agent/version";
|
|
34
59
|
readonly CONNECTION_STATUS: "/api/agent/connection-status";
|
|
35
60
|
readonly CONFIG: "/api/agent/config";
|
|
61
|
+
readonly AWS_CREDENTIALS: "/api/agent/aws-credentials";
|
|
62
|
+
readonly DB_CREDENTIALS: "/api/agent/db-credentials";
|
|
63
|
+
readonly PROJECT_CONFIG: "/api/agent/project-config";
|
|
36
64
|
};
|
|
65
|
+
export declare const CONFIG_SYNC_DEBOUNCE_MS = 2000;
|
|
66
|
+
export declare const INITIAL_CONFIG_SYNC_MAX_RETRIES = 3;
|
|
67
|
+
export declare const INITIAL_CONFIG_SYNC_RETRY_DELAY_MS = 2000;
|
|
37
68
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,UAAU,QAKnB,CAAA;AACJ,eAAO,MAAM,WAAW,gBAAgB,CAAA;AACxC,eAAO,MAAM,qBAAqB,OAAO,CAAA;AACzC,eAAO,MAAM,0BAA0B,QAAQ,CAAA;AAC/C,eAAO,MAAM,YAAY,QAAgB,CAAA;AACzC,eAAO,MAAM,aAAa,QAAsB,CAAA;AAChD,eAAO,MAAM,eAAe,QAAmB,CAAA;AAC/C,eAAO,MAAM,kBAAkB,QAAY,CAAA;AAG3C,eAAO,MAAM,eAAe,IAAI,CAAA;AAChC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AACrC,eAAO,MAAM,mBAAmB,QAAS,CAAA;AAGzC,eAAO,MAAM,mBAAmB,QAAS,CAAA;AACzC,eAAO,MAAM,eAAe,QAAiB,CAAA;AAC7C,eAAO,MAAM,kBAAkB,QAAmB,CAAA;AAClD,eAAO,MAAM,mBAAmB,QAAmB,CAAA;AACnD,eAAO,MAAM,oBAAoB,QAAS,CAAA;AAG1C,eAAO,MAAM,YAAY,OAAO,CAAA;AAChC,eAAO,MAAM,YAAY,SAAU,CAAA;AAGnC,eAAO,MAAM,eAAe,OAAO,CAAA;AAGnC,eAAO,MAAM,oBAAoB,YAAY,CAAA;AAC7C,eAAO,MAAM,uBAAuB,eAAe,CAAA;AACnD,eAAO,MAAM,wBAAwB,gBAAgB,CAAA;AAGrD,eAAO,MAAM,qBAAqB,QAAiB,CAAA;AACnD,eAAO,MAAM,0BAA0B,QAAS,CAAA;AAChD,eAAO,MAAM,mBAAmB,SAAU,CAAA;AAG1C,eAAO,MAAM,uBAAuB,+BAA+B,CAAA;AACnE,eAAO,MAAM,qBAAqB,eAAe,CAAA;AACjD,eAAO,MAAM,iBAAiB,0CAA0C,CAAA;AACxE,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAGtC,eAAO,MAAM,YAAY,SAAU,CAAA;AACnC,eAAO,MAAM,kBAAkB,OAAQ,CAAA;AACvC,eAAO,MAAM,wBAAwB,OAAQ,CAAA;AAC7C,eAAO,MAAM,0BAA0B,SAAU,CAAA;AAGjD,eAAO,MAAM,iBAAiB,MAAM,CAAA;AACpC,eAAO,MAAM,iBAAiB,MAAM,CAAA;AACpC,eAAO,MAAM,gBAAgB,MAAM,CAAA;AACnC,eAAO,MAAM,eAAe,MAAM,CAAA;AAClC,eAAO,MAAM,eAAe,MAAM,CAAA;AAGlC,eAAO,MAAM,qBAAqB,yCAAyC,CAAA;AAC3E,eAAO,MAAM,oBAAoB,wBAAwB,CAAA;AACzD,eAAO,MAAM,wBAAwB,yBAAyB,CAAA;AAC9D,eAAO,MAAM,wBAAwB,yBAAyB,CAAA;AAC9D,eAAO,MAAM,0BAA0B,2BAA2B,CAAA;AAClE,eAAO,MAAM,eAAe,4CAA4C,CAAA;AACxE,eAAO,MAAM,6BAA6B,+EAA+E,CAAA;AACzH,eAAO,MAAM,4BAA4B,gCAAgC,CAAA;AACzE,eAAO,MAAM,wBAAwB,kOAA6D,CAAA;AAClG,eAAO,MAAM,wBAAwB,+CAA+C,CAAA;AACpF,eAAO,MAAM,2BAA2B,4CAA4C,CAAA;AACpF,eAAO,MAAM,iCAAiC,uDAAuD,CAAA;AAGrG,eAAO,MAAM,aAAa;;;;kCAIH,MAAM;yCACC,MAAM;yCACN,MAAM;;;;;;;CAO1B,CAAA;AAEV,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAC3C,eAAO,MAAM,+BAA+B,IAAI,CAAA;AAChD,eAAO,MAAM,kCAAkC,OAAO,CAAA"}
|
package/dist/constants.js
CHANGED
|
@@ -33,7 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
36
|
+
exports.ERR_CONFIG_SYNC_REQUIRES_CALLBACK = exports.ERR_SETUP_REQUIRES_CALLBACK = exports.ERR_CHAT_REQUIRES_CLIENT = exports.ERR_CLAUDE_CLI_NOT_FOUND = exports.ERR_AUTH_SERVER_START_FAILED = exports.ERR_ANTHROPIC_API_KEY_NOT_SET = exports.ERR_INVALID_PID = exports.ERR_NO_FILE_PATH_SPECIFIED = exports.ERR_NO_CONTENT_SPECIFIED = exports.ERR_NO_COMMAND_SPECIFIED = exports.ERR_MESSAGE_REQUIRED = exports.ERR_AGENT_ID_REQUIRED = exports.CHUNK_LOG_LIMIT = exports.LOG_DEBUG_LIMIT = exports.LOG_RESULT_LIMIT = exports.LOG_PAYLOAD_LIMIT = exports.LOG_MESSAGE_LIMIT = exports.DEFAULT_APPSYNC_TIMEOUT_MS = exports.CLAUDE_DETECT_TIMEOUT_MS = exports.CHAT_SIGKILL_DELAY = exports.CHAT_TIMEOUT = exports.DEFAULT_MAX_TOKENS = exports.ANTHROPIC_API_URL = exports.ANTHROPIC_API_VERSION = exports.DEFAULT_ANTHROPIC_MODEL = exports.NPM_INSTALL_TIMEOUT = exports.UPDATE_CHECK_INITIAL_DELAY = exports.UPDATE_CHECK_INTERVAL = exports.PROJECT_CODE_ENV_DEFAULT = exports.PROJECT_CODE_CLI_DIRECT = exports.PROJECT_CODE_DEFAULT = exports.MAX_DIR_ENTRIES = exports.MAX_INTERVAL = exports.MIN_INTERVAL = exports.PROCESS_LIST_TIMEOUT = exports.MAX_FILE_WRITE_SIZE = exports.MAX_FILE_READ_SIZE = exports.MAX_CMD_TIMEOUT = exports.CMD_DEFAULT_TIMEOUT = exports.API_REQUEST_TIMEOUT = exports.API_BASE_DELAY_MS = exports.API_MAX_RETRIES = exports.MAX_AUTH_BODY_SIZE = exports.MAX_OUTPUT_SIZE = exports.AGENT_VERSION = exports.AUTH_TIMEOUT = exports.DEFAULT_HEARTBEAT_INTERVAL = exports.DEFAULT_POLL_INTERVAL = exports.CONFIG_FILE = exports.CONFIG_DIR = void 0;
|
|
37
|
+
exports.INITIAL_CONFIG_SYNC_RETRY_DELAY_MS = exports.INITIAL_CONFIG_SYNC_MAX_RETRIES = exports.CONFIG_SYNC_DEBOUNCE_MS = exports.API_ENDPOINTS = void 0;
|
|
37
38
|
const fs_1 = require("fs");
|
|
38
39
|
const os = __importStar(require("os"));
|
|
39
40
|
const path_1 = require("path");
|
|
@@ -50,7 +51,8 @@ exports.CONFIG_DIR = (() => {
|
|
|
50
51
|
const envDir = process.env.AI_SUPPORT_AGENT_CONFIG_DIR;
|
|
51
52
|
if (!envDir)
|
|
52
53
|
return '.ai-support-agent';
|
|
53
|
-
|
|
54
|
+
const expanded = envDir.replace(/^~(?=$|\/)/, os.homedir());
|
|
55
|
+
return (0, path_1.resolve)(expanded);
|
|
54
56
|
})();
|
|
55
57
|
exports.CONFIG_FILE = 'config.json';
|
|
56
58
|
exports.DEFAULT_POLL_INTERVAL = 3000;
|
|
@@ -82,6 +84,35 @@ exports.PROJECT_CODE_ENV_DEFAULT = 'env-default';
|
|
|
82
84
|
exports.UPDATE_CHECK_INTERVAL = 60 * 60 * 1000; // 1 hour
|
|
83
85
|
exports.UPDATE_CHECK_INITIAL_DELAY = 30_000; // 30 seconds
|
|
84
86
|
exports.NPM_INSTALL_TIMEOUT = 120_000; // 2 minutes
|
|
87
|
+
// Anthropic API
|
|
88
|
+
exports.DEFAULT_ANTHROPIC_MODEL = 'claude-sonnet-4-6-20250514';
|
|
89
|
+
exports.ANTHROPIC_API_VERSION = '2023-06-01';
|
|
90
|
+
exports.ANTHROPIC_API_URL = 'https://api.anthropic.com/v1/messages';
|
|
91
|
+
exports.DEFAULT_MAX_TOKENS = 4096;
|
|
92
|
+
// Chat executor
|
|
93
|
+
exports.CHAT_TIMEOUT = 120_000;
|
|
94
|
+
exports.CHAT_SIGKILL_DELAY = 5_000;
|
|
95
|
+
exports.CLAUDE_DETECT_TIMEOUT_MS = 5_000;
|
|
96
|
+
exports.DEFAULT_APPSYNC_TIMEOUT_MS = 300_000;
|
|
97
|
+
// Log truncation
|
|
98
|
+
exports.LOG_MESSAGE_LIMIT = 100;
|
|
99
|
+
exports.LOG_PAYLOAD_LIMIT = 500;
|
|
100
|
+
exports.LOG_RESULT_LIMIT = 300;
|
|
101
|
+
exports.LOG_DEBUG_LIMIT = 200;
|
|
102
|
+
exports.CHUNK_LOG_LIMIT = 100;
|
|
103
|
+
// Error messages
|
|
104
|
+
exports.ERR_AGENT_ID_REQUIRED = 'agentId is required for chat command';
|
|
105
|
+
exports.ERR_MESSAGE_REQUIRED = 'message is required';
|
|
106
|
+
exports.ERR_NO_COMMAND_SPECIFIED = 'No command specified';
|
|
107
|
+
exports.ERR_NO_CONTENT_SPECIFIED = 'No content specified';
|
|
108
|
+
exports.ERR_NO_FILE_PATH_SPECIFIED = 'No file path specified';
|
|
109
|
+
exports.ERR_INVALID_PID = 'Invalid PID: must be a positive integer';
|
|
110
|
+
exports.ERR_ANTHROPIC_API_KEY_NOT_SET = 'ANTHROPIC_API_KEY is not set. API chat mode requires an Anthropic API key.';
|
|
111
|
+
exports.ERR_AUTH_SERVER_START_FAILED = 'Failed to start auth server';
|
|
112
|
+
exports.ERR_CLAUDE_CLI_NOT_FOUND = 'claude CLI が見つかりません。Claude Code がインストールされていることを確認してください。';
|
|
113
|
+
exports.ERR_CHAT_REQUIRES_CLIENT = 'chat command requires commandId and client';
|
|
114
|
+
exports.ERR_SETUP_REQUIRES_CALLBACK = 'setup command requires onSetup callback';
|
|
115
|
+
exports.ERR_CONFIG_SYNC_REQUIRES_CALLBACK = 'config_sync command requires onConfigSync callback';
|
|
85
116
|
// API endpoint paths
|
|
86
117
|
exports.API_ENDPOINTS = {
|
|
87
118
|
REGISTER: '/api/agent/register',
|
|
@@ -93,5 +124,11 @@ exports.API_ENDPOINTS = {
|
|
|
93
124
|
VERSION: '/api/agent/version',
|
|
94
125
|
CONNECTION_STATUS: '/api/agent/connection-status',
|
|
95
126
|
CONFIG: '/api/agent/config',
|
|
127
|
+
AWS_CREDENTIALS: '/api/agent/aws-credentials',
|
|
128
|
+
DB_CREDENTIALS: '/api/agent/db-credentials',
|
|
129
|
+
PROJECT_CONFIG: '/api/agent/project-config',
|
|
96
130
|
};
|
|
131
|
+
exports.CONFIG_SYNC_DEBOUNCE_MS = 2000;
|
|
132
|
+
exports.INITIAL_CONFIG_SYNC_MAX_RETRIES = 3;
|
|
133
|
+
exports.INITIAL_CONFIG_SYNC_RETRY_DELAY_MS = 2000;
|
|
97
134
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface DockerRunOptions {
|
|
2
|
+
token?: string;
|
|
3
|
+
apiUrl?: string;
|
|
4
|
+
pollInterval?: number;
|
|
5
|
+
heartbeatInterval?: number;
|
|
6
|
+
verbose?: boolean;
|
|
7
|
+
autoUpdate?: boolean;
|
|
8
|
+
updateChannel?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function checkDockerAvailable(): boolean;
|
|
11
|
+
export declare function imageExists(version: string): boolean;
|
|
12
|
+
export declare function buildImage(version: string): void;
|
|
13
|
+
export declare function buildVolumeMounts(): string[];
|
|
14
|
+
export declare function buildEnvArgs(): string[];
|
|
15
|
+
export declare function buildContainerArgs(opts: DockerRunOptions): string[];
|
|
16
|
+
export declare function ensureImage(): string;
|
|
17
|
+
export declare function dockerLogin(): void;
|
|
18
|
+
export declare function runInDocker(opts: DockerRunOptions): void;
|
|
19
|
+
//# sourceMappingURL=docker-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-runner.d.ts","sourceRoot":"","sources":["../../src/docker/docker-runner.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAO9C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOpD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAShD;AAED,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAuC5C;AAED,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAkBvC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,EAAE,CA0BnE;AAED,wBAAgB,WAAW,IAAI,MAAM,CAQpC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAWlC;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CA0CxD"}
|
|
@@ -0,0 +1,221 @@
|
|
|
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.checkDockerAvailable = checkDockerAvailable;
|
|
37
|
+
exports.imageExists = imageExists;
|
|
38
|
+
exports.buildImage = buildImage;
|
|
39
|
+
exports.buildVolumeMounts = buildVolumeMounts;
|
|
40
|
+
exports.buildEnvArgs = buildEnvArgs;
|
|
41
|
+
exports.buildContainerArgs = buildContainerArgs;
|
|
42
|
+
exports.ensureImage = ensureImage;
|
|
43
|
+
exports.dockerLogin = dockerLogin;
|
|
44
|
+
exports.runInDocker = runInDocker;
|
|
45
|
+
const child_process_1 = require("child_process");
|
|
46
|
+
const os = __importStar(require("os"));
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const fs = __importStar(require("fs"));
|
|
49
|
+
const dockerfile_path_1 = require("./dockerfile-path");
|
|
50
|
+
const constants_1 = require("../constants");
|
|
51
|
+
const config_manager_1 = require("../config-manager");
|
|
52
|
+
const i18n_1 = require("../i18n");
|
|
53
|
+
const logger_1 = require("../logger");
|
|
54
|
+
const IMAGE_NAME = 'ai-support-agent';
|
|
55
|
+
const PASSTHROUGH_ENV_VARS = [
|
|
56
|
+
'AI_SUPPORT_AGENT_TOKEN',
|
|
57
|
+
'AI_SUPPORT_AGENT_API_URL',
|
|
58
|
+
'AI_SUPPORT_AGENT_CONFIG_DIR',
|
|
59
|
+
'ANTHROPIC_API_KEY',
|
|
60
|
+
'CLAUDE_CODE_OAUTH_TOKEN',
|
|
61
|
+
];
|
|
62
|
+
function checkDockerAvailable() {
|
|
63
|
+
try {
|
|
64
|
+
(0, child_process_1.execSync)('docker info', { stdio: 'ignore' });
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function imageExists(version) {
|
|
72
|
+
try {
|
|
73
|
+
(0, child_process_1.execSync)(`docker image inspect ${IMAGE_NAME}:${version}`, { stdio: 'ignore' });
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function buildImage(version) {
|
|
81
|
+
const dockerfilePath = (0, dockerfile_path_1.getDockerfilePath)();
|
|
82
|
+
const contextDir = (0, dockerfile_path_1.getDockerContextDir)();
|
|
83
|
+
logger_1.logger.info((0, i18n_1.t)('docker.building'));
|
|
84
|
+
(0, child_process_1.execSync)(`docker build -t ${IMAGE_NAME}:${version} --build-arg AGENT_VERSION=${version} -f ${dockerfilePath} ${contextDir}`, { stdio: 'inherit' });
|
|
85
|
+
logger_1.logger.success((0, i18n_1.t)('docker.buildComplete'));
|
|
86
|
+
}
|
|
87
|
+
function buildVolumeMounts() {
|
|
88
|
+
const home = os.homedir();
|
|
89
|
+
const mounts = [];
|
|
90
|
+
// Claude Code OAuth tokens and config
|
|
91
|
+
const claudeDir = path.join(home, '.claude');
|
|
92
|
+
if (fs.existsSync(claudeDir)) {
|
|
93
|
+
mounts.push('-v', `${claudeDir}:${claudeDir}:rw`);
|
|
94
|
+
}
|
|
95
|
+
const claudeJson = path.join(home, '.claude.json');
|
|
96
|
+
if (fs.existsSync(claudeJson)) {
|
|
97
|
+
mounts.push('-v', `${claudeJson}:${claudeJson}:rw`);
|
|
98
|
+
}
|
|
99
|
+
// Agent config (resolves custom AI_SUPPORT_AGENT_CONFIG_DIR)
|
|
100
|
+
const agentConfigDir = (0, config_manager_1.getConfigDir)();
|
|
101
|
+
if (fs.existsSync(agentConfigDir)) {
|
|
102
|
+
mounts.push('-v', `${agentConfigDir}:${agentConfigDir}:rw`);
|
|
103
|
+
}
|
|
104
|
+
// AWS credentials
|
|
105
|
+
const awsDir = path.join(home, '.aws');
|
|
106
|
+
if (fs.existsSync(awsDir)) {
|
|
107
|
+
mounts.push('-v', `${awsDir}:${awsDir}:ro`);
|
|
108
|
+
}
|
|
109
|
+
// Custom project directories from config
|
|
110
|
+
const config = (0, config_manager_1.loadConfig)();
|
|
111
|
+
if (config?.projects) {
|
|
112
|
+
const mounted = new Set();
|
|
113
|
+
for (const project of config.projects) {
|
|
114
|
+
if (project.projectDir && !mounted.has(project.projectDir) && fs.existsSync(project.projectDir)) {
|
|
115
|
+
mounts.push('-v', `${project.projectDir}:${project.projectDir}:rw`);
|
|
116
|
+
mounted.add(project.projectDir);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return mounts;
|
|
121
|
+
}
|
|
122
|
+
function buildEnvArgs() {
|
|
123
|
+
const args = [];
|
|
124
|
+
// HOME must be passed so volume mounts resolve to the same paths
|
|
125
|
+
args.push('-e', `HOME=${os.homedir()}`);
|
|
126
|
+
for (const key of PASSTHROUGH_ENV_VARS) {
|
|
127
|
+
if (process.env[key]) {
|
|
128
|
+
// Resolve CONFIG_DIR to absolute path so it matches the volume mount inside the container
|
|
129
|
+
if (key === 'AI_SUPPORT_AGENT_CONFIG_DIR') {
|
|
130
|
+
args.push('-e', `${key}=${(0, config_manager_1.getConfigDir)()}`);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
args.push('-e', `${key}=${process.env[key]}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return args;
|
|
138
|
+
}
|
|
139
|
+
function buildContainerArgs(opts) {
|
|
140
|
+
const args = ['start'];
|
|
141
|
+
if (opts.token) {
|
|
142
|
+
args.push('--token', opts.token);
|
|
143
|
+
}
|
|
144
|
+
if (opts.apiUrl) {
|
|
145
|
+
args.push('--api-url', opts.apiUrl);
|
|
146
|
+
}
|
|
147
|
+
if (opts.pollInterval !== undefined) {
|
|
148
|
+
args.push('--poll-interval', String(opts.pollInterval));
|
|
149
|
+
}
|
|
150
|
+
if (opts.heartbeatInterval !== undefined) {
|
|
151
|
+
args.push('--heartbeat-interval', String(opts.heartbeatInterval));
|
|
152
|
+
}
|
|
153
|
+
if (opts.verbose) {
|
|
154
|
+
args.push('--verbose');
|
|
155
|
+
}
|
|
156
|
+
if (opts.autoUpdate === false) {
|
|
157
|
+
args.push('--no-auto-update');
|
|
158
|
+
}
|
|
159
|
+
if (opts.updateChannel) {
|
|
160
|
+
args.push('--update-channel', opts.updateChannel);
|
|
161
|
+
}
|
|
162
|
+
return args;
|
|
163
|
+
}
|
|
164
|
+
function ensureImage() {
|
|
165
|
+
const version = constants_1.AGENT_VERSION;
|
|
166
|
+
if (!imageExists(version)) {
|
|
167
|
+
buildImage(version);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
logger_1.logger.info((0, i18n_1.t)('docker.imageFound', { version }));
|
|
171
|
+
}
|
|
172
|
+
return version;
|
|
173
|
+
}
|
|
174
|
+
function dockerLogin() {
|
|
175
|
+
logger_1.logger.info((0, i18n_1.t)('docker.loginStep1'));
|
|
176
|
+
console.log('');
|
|
177
|
+
console.log(' claude setup-token');
|
|
178
|
+
console.log('');
|
|
179
|
+
logger_1.logger.info((0, i18n_1.t)('docker.loginStep2'));
|
|
180
|
+
console.log('');
|
|
181
|
+
console.log(' export CLAUDE_CODE_OAUTH_TOKEN=<token>');
|
|
182
|
+
console.log(' ai-support-agent start --docker');
|
|
183
|
+
console.log('');
|
|
184
|
+
logger_1.logger.info((0, i18n_1.t)('docker.loginStep3'));
|
|
185
|
+
}
|
|
186
|
+
function runInDocker(opts) {
|
|
187
|
+
if (!checkDockerAvailable()) {
|
|
188
|
+
logger_1.logger.error((0, i18n_1.t)('docker.notAvailable'));
|
|
189
|
+
process.exit(1);
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
const version = ensureImage();
|
|
193
|
+
logger_1.logger.info((0, i18n_1.t)('docker.starting'));
|
|
194
|
+
const volumeMounts = buildVolumeMounts();
|
|
195
|
+
const envArgs = buildEnvArgs();
|
|
196
|
+
const containerArgs = buildContainerArgs(opts);
|
|
197
|
+
const dockerArgs = [
|
|
198
|
+
'run', '--rm', '-it',
|
|
199
|
+
...volumeMounts,
|
|
200
|
+
...envArgs,
|
|
201
|
+
`${IMAGE_NAME}:${version}`,
|
|
202
|
+
...containerArgs,
|
|
203
|
+
];
|
|
204
|
+
const child = (0, child_process_1.spawn)('docker', dockerArgs, {
|
|
205
|
+
stdio: 'inherit',
|
|
206
|
+
});
|
|
207
|
+
// Forward signals to container
|
|
208
|
+
const forwardSignal = (signal) => {
|
|
209
|
+
child.kill(signal);
|
|
210
|
+
};
|
|
211
|
+
process.on('SIGINT', () => forwardSignal('SIGINT'));
|
|
212
|
+
process.on('SIGTERM', () => forwardSignal('SIGTERM'));
|
|
213
|
+
child.on('error', (err) => {
|
|
214
|
+
logger_1.logger.error((0, i18n_1.t)('docker.runFailed', { message: err.message }));
|
|
215
|
+
process.exit(1);
|
|
216
|
+
});
|
|
217
|
+
child.on('close', (code) => {
|
|
218
|
+
process.exit(code ?? 0);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=docker-runner.js.map
|