@ai-support-agent/cli 0.0.4-beta.9 → 0.0.5-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/agent-runner.d.ts +4 -1
  2. package/dist/agent-runner.d.ts.map +1 -1
  3. package/dist/agent-runner.js +17 -5
  4. package/dist/agent-runner.js.map +1 -1
  5. package/dist/api-client.d.ts +5 -1
  6. package/dist/api-client.d.ts.map +1 -1
  7. package/dist/api-client.js +55 -63
  8. package/dist/api-client.js.map +1 -1
  9. package/dist/appsync-subscriber.d.ts.map +1 -1
  10. package/dist/appsync-subscriber.js +3 -1
  11. package/dist/appsync-subscriber.js.map +1 -1
  12. package/dist/auto-updater.d.ts.map +1 -1
  13. package/dist/auto-updater.js +7 -2
  14. package/dist/auto-updater.js.map +1 -1
  15. package/dist/aws-credential-builder.d.ts +11 -2
  16. package/dist/aws-credential-builder.d.ts.map +1 -1
  17. package/dist/aws-credential-builder.js +45 -6
  18. package/dist/aws-credential-builder.js.map +1 -1
  19. package/dist/commands/api-chat-executor.d.ts.map +1 -1
  20. package/dist/commands/api-chat-executor.js +11 -3
  21. package/dist/commands/api-chat-executor.js.map +1 -1
  22. package/dist/commands/chat-executor.d.ts +1 -1
  23. package/dist/commands/chat-executor.d.ts.map +1 -1
  24. package/dist/commands/chat-executor.js +40 -42
  25. package/dist/commands/chat-executor.js.map +1 -1
  26. package/dist/commands/claude-code-runner.d.ts +4 -2
  27. package/dist/commands/claude-code-runner.d.ts.map +1 -1
  28. package/dist/commands/claude-code-runner.js +8 -4
  29. package/dist/commands/claude-code-runner.js.map +1 -1
  30. package/dist/commands/index.d.ts +1 -0
  31. package/dist/commands/index.d.ts.map +1 -1
  32. package/dist/commands/index.js +1 -1
  33. package/dist/commands/index.js.map +1 -1
  34. package/dist/commands/shared-chat-utils.d.ts +9 -1
  35. package/dist/commands/shared-chat-utils.d.ts.map +1 -1
  36. package/dist/commands/shared-chat-utils.js +24 -0
  37. package/dist/commands/shared-chat-utils.js.map +1 -1
  38. package/dist/config-manager.d.ts +1 -0
  39. package/dist/config-manager.d.ts.map +1 -1
  40. package/dist/config-manager.js +1 -0
  41. package/dist/config-manager.js.map +1 -1
  42. package/dist/constants.d.ts +3 -0
  43. package/dist/constants.d.ts.map +1 -1
  44. package/dist/constants.js +6 -2
  45. package/dist/constants.js.map +1 -1
  46. package/dist/docker/docker-runner.d.ts +19 -0
  47. package/dist/docker/docker-runner.d.ts.map +1 -0
  48. package/dist/docker/docker-runner.js +221 -0
  49. package/dist/docker/docker-runner.js.map +1 -0
  50. package/dist/docker/dockerfile-path.d.ts +10 -0
  51. package/dist/docker/dockerfile-path.d.ts.map +1 -0
  52. package/dist/docker/dockerfile-path.js +25 -0
  53. package/dist/docker/dockerfile-path.js.map +1 -0
  54. package/dist/index.js +59 -0
  55. package/dist/index.js.map +1 -1
  56. package/dist/locales/en.json +25 -1
  57. package/dist/locales/ja.json +25 -1
  58. package/dist/locales/locales/en.json +25 -1
  59. package/dist/locales/locales/ja.json +25 -1
  60. package/dist/logger.d.ts +2 -0
  61. package/dist/logger.d.ts.map +1 -1
  62. package/dist/logger.js +20 -1
  63. package/dist/logger.js.map +1 -1
  64. package/dist/mcp/config-writer.d.ts +17 -0
  65. package/dist/mcp/config-writer.d.ts.map +1 -0
  66. package/dist/mcp/config-writer.js +63 -0
  67. package/dist/mcp/config-writer.js.map +1 -0
  68. package/dist/mcp/server.d.ts +11 -0
  69. package/dist/mcp/server.d.ts.map +1 -0
  70. package/dist/mcp/server.js +55 -0
  71. package/dist/mcp/server.js.map +1 -0
  72. package/dist/mcp/tools/credentials.d.ts +14 -0
  73. package/dist/mcp/tools/credentials.d.ts.map +1 -0
  74. package/dist/mcp/tools/credentials.js +42 -0
  75. package/dist/mcp/tools/credentials.js.map +1 -0
  76. package/dist/mcp/tools/db-query.d.ts +13 -0
  77. package/dist/mcp/tools/db-query.d.ts.map +1 -0
  78. package/dist/mcp/tools/db-query.js +131 -0
  79. package/dist/mcp/tools/db-query.js.map +1 -0
  80. package/dist/mcp/tools/db-schemas.d.ts +5 -0
  81. package/dist/mcp/tools/db-schemas.d.ts.map +1 -0
  82. package/dist/mcp/tools/db-schemas.js +61 -0
  83. package/dist/mcp/tools/db-schemas.js.map +1 -0
  84. package/dist/mcp/tools/mcp-response.d.ts +15 -0
  85. package/dist/mcp/tools/mcp-response.d.ts.map +1 -0
  86. package/dist/mcp/tools/mcp-response.js +15 -0
  87. package/dist/mcp/tools/mcp-response.js.map +1 -0
  88. package/dist/mcp/tools/project-info.d.ts +5 -0
  89. package/dist/mcp/tools/project-info.d.ts.map +1 -0
  90. package/dist/mcp/tools/project-info.js +43 -0
  91. package/dist/mcp/tools/project-info.js.map +1 -0
  92. package/dist/project-agent.d.ts +4 -0
  93. package/dist/project-agent.d.ts.map +1 -1
  94. package/dist/project-agent.js +38 -2
  95. package/dist/project-agent.js.map +1 -1
  96. package/dist/project-dir.d.ts.map +1 -1
  97. package/dist/project-dir.js +5 -2
  98. package/dist/project-dir.js.map +1 -1
  99. package/dist/sentry.d.ts +14 -0
  100. package/dist/sentry.d.ts.map +1 -0
  101. package/dist/sentry.js +98 -0
  102. package/dist/sentry.js.map +1 -0
  103. package/dist/types.d.ts +33 -1
  104. package/dist/types.d.ts.map +1 -1
  105. package/dist/update-checker.d.ts +26 -5
  106. package/dist/update-checker.d.ts.map +1 -1
  107. package/dist/update-checker.js +148 -8
  108. package/dist/update-checker.js.map +1 -1
  109. package/docker/Dockerfile +39 -0
  110. package/package.json +7 -1
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-runner.js","sourceRoot":"","sources":["../../src/docker/docker-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Get the path to the Dockerfile included in the npm package.
3
+ * __dirname at runtime is dist/docker/, so we go up two levels to reach the package root.
4
+ */
5
+ export declare function getDockerfilePath(): string;
6
+ /**
7
+ * Get the Docker build context directory (package root).
8
+ */
9
+ export declare function getDockerContextDir(): string;
10
+ //# sourceMappingURL=dockerfile-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dockerfile-path.d.ts","sourceRoot":"","sources":["../../src/docker/dockerfile-path.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDockerfilePath = getDockerfilePath;
4
+ exports.getDockerContextDir = getDockerContextDir;
5
+ const path_1 = require("path");
6
+ const fs_1 = require("fs");
7
+ /**
8
+ * Get the path to the Dockerfile included in the npm package.
9
+ * __dirname at runtime is dist/docker/, so we go up two levels to reach the package root.
10
+ */
11
+ function getDockerfilePath() {
12
+ const packageRoot = getDockerContextDir();
13
+ const dockerfilePath = (0, path_1.join)(packageRoot, 'docker', 'Dockerfile');
14
+ if (!(0, fs_1.existsSync)(dockerfilePath)) {
15
+ throw new Error(`Dockerfile not found: ${dockerfilePath}`);
16
+ }
17
+ return dockerfilePath;
18
+ }
19
+ /**
20
+ * Get the Docker build context directory (package root).
21
+ */
22
+ function getDockerContextDir() {
23
+ return (0, path_1.join)(__dirname, '..', '..');
24
+ }
25
+ //# sourceMappingURL=dockerfile-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dockerfile-path.js","sourceRoot":"","sources":["../../src/docker/dockerfile-path.ts"],"names":[],"mappings":";;AAOA,8CAOC;AAKD,kDAEC;AArBD,+BAA2B;AAC3B,2BAA+B;AAE/B;;;GAGG;AACH,SAAgB,iBAAiB;IAC/B,MAAM,WAAW,GAAG,mBAAmB,EAAE,CAAA;IACzC,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;IAChE,IAAI,CAAC,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,yBAAyB,cAAc,EAAE,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,cAAc,CAAA;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AACpC,CAAC"}
package/dist/index.js CHANGED
@@ -63,7 +63,21 @@ program
63
63
  .option('--verbose', (0, i18n_1.t)('cmd.start.verbose'))
64
64
  .option('--no-auto-update', (0, i18n_1.t)('cmd.start.noAutoUpdate'))
65
65
  .option('--update-channel <channel>', (0, i18n_1.t)('cmd.start.updateChannel'))
66
+ .option('--docker', (0, i18n_1.t)('cmd.start.docker'))
66
67
  .action(async (opts) => {
68
+ if (opts.docker) {
69
+ const { runInDocker } = await Promise.resolve().then(() => __importStar(require('./docker/docker-runner')));
70
+ runInDocker({
71
+ token: opts.token,
72
+ apiUrl: opts.apiUrl,
73
+ pollInterval: (0, validators_1.parseIntervalOrExit)(opts.pollInterval, 'poll-interval'),
74
+ heartbeatInterval: (0, validators_1.parseIntervalOrExit)(opts.heartbeatInterval, 'heartbeat-interval'),
75
+ verbose: opts.verbose,
76
+ autoUpdate: opts.autoUpdate,
77
+ updateChannel: opts.updateChannel,
78
+ });
79
+ return;
80
+ }
67
81
  const updateChannel = (0, validators_1.validateUpdateChannel)(opts.updateChannel);
68
82
  await (0, agent_runner_1.startAgent)({
69
83
  token: opts.token,
@@ -113,6 +127,51 @@ program
113
127
  (0, config_manager_1.saveConfig)({ language: lang });
114
128
  logger_1.logger.success((0, i18n_1.t)('config.languageSet', { lang }));
115
129
  });
130
+ program
131
+ .command('set-auto-update')
132
+ .description((0, i18n_1.t)('cmd.setAutoUpdate'))
133
+ .option('--enable', (0, i18n_1.t)('cmd.setAutoUpdate.enable'))
134
+ .option('--disable', (0, i18n_1.t)('cmd.setAutoUpdate.disable'))
135
+ .option('--channel <channel>', (0, i18n_1.t)('cmd.setAutoUpdate.channel'))
136
+ .action((opts) => {
137
+ if (!opts.enable && !opts.disable && !opts.channel) {
138
+ logger_1.logger.warn((0, i18n_1.t)('autoUpdate.usageHint'));
139
+ return;
140
+ }
141
+ const config = (0, config_manager_1.loadConfig)();
142
+ const current = config?.autoUpdate ?? { enabled: true, autoRestart: true, channel: 'latest' };
143
+ if (opts.enable && opts.disable) {
144
+ logger_1.logger.warn((0, i18n_1.t)('autoUpdate.conflictFlags'));
145
+ return;
146
+ }
147
+ const channel = opts.channel ? (0, validators_1.validateUpdateChannel)(opts.channel) : undefined;
148
+ if (opts.channel && !channel) {
149
+ return;
150
+ }
151
+ const updated = {
152
+ ...current,
153
+ ...(opts.enable && { enabled: true }),
154
+ ...(opts.disable && { enabled: false }),
155
+ ...(channel && { channel }),
156
+ };
157
+ (0, config_manager_1.saveConfig)({ autoUpdate: updated });
158
+ if (opts.disable) {
159
+ logger_1.logger.success((0, i18n_1.t)('autoUpdate.disabled'));
160
+ }
161
+ else if (opts.enable) {
162
+ logger_1.logger.success((0, i18n_1.t)('autoUpdate.enabled', { channel: updated.channel }));
163
+ }
164
+ if (channel) {
165
+ logger_1.logger.success((0, i18n_1.t)('autoUpdate.channelSet', { channel }));
166
+ }
167
+ });
168
+ program
169
+ .command('docker-login')
170
+ .description((0, i18n_1.t)('cmd.dockerLogin'))
171
+ .action(async () => {
172
+ const { dockerLogin } = await Promise.resolve().then(() => __importStar(require('./docker/docker-runner')));
173
+ dockerLogin();
174
+ });
116
175
  (0, status_command_1.registerStatusCommand)(program);
117
176
  (0, set_project_dir_1.registerSetProjectDirCommand)(program);
118
177
  program.parse();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -93,6 +93,8 @@
93
93
  "update.disabled": "disabled",
94
94
  "update.enabled": "enabled (auto-restart: {{autoRestart}})",
95
95
  "update.checkFailed": "Version check failed: {{message}}",
96
+ "update.skipDev": "Development mode detected. Automatic update is not supported.",
97
+ "update.skipLocal": "Local installation detected. Run \"npm update @ai-support-agent/cli\" in your project to update.",
96
98
 
97
99
  "cmd.setProjectDir": "Set project directory",
98
100
  "cmd.setProjectDir.project": "Project code",
@@ -104,5 +106,27 @@
104
106
  "projectDir.noProject": "Project \"{{projectCode}}\" is not registered.",
105
107
  "projectDir.initialized": "Project directory initialized: {{projectDir}} ({{projectCode}})",
106
108
  "projectDir.usageHint": "Usage: set-project-dir --project <code> --path <path> OR --default <template>",
107
- "projectDir.cleaned": "Cleaned up metadata directory: {{metadataDir}}"
109
+ "projectDir.cleaned": "Cleaned up metadata directory: {{metadataDir}}",
110
+
111
+ "cmd.setAutoUpdate": "Configure automatic updates",
112
+ "cmd.setAutoUpdate.enable": "Enable automatic updates",
113
+ "cmd.setAutoUpdate.disable": "Disable automatic updates",
114
+ "cmd.setAutoUpdate.channel": "Set update channel (latest, beta, alpha)",
115
+ "autoUpdate.usageHint": "Usage: set-auto-update --enable | --disable | --channel <channel>",
116
+ "autoUpdate.conflictFlags": "Cannot use --enable and --disable together.",
117
+ "autoUpdate.disabled": "Automatic updates disabled.",
118
+ "autoUpdate.enabled": "Automatic updates enabled (channel: {{channel}}).",
119
+ "autoUpdate.channelSet": "Update channel set to \"{{channel}}\".",
120
+
121
+ "cmd.start.docker": "Run inside a Docker container",
122
+ "cmd.dockerLogin": "Log in to Claude Code inside a Docker container",
123
+ "docker.notAvailable": "Docker is not available. Make sure Docker Desktop is running.",
124
+ "docker.building": "Building Docker image...",
125
+ "docker.buildComplete": "Docker image build complete",
126
+ "docker.imageFound": "Using existing Docker image ({{version}})",
127
+ "docker.starting": "Starting Docker container...",
128
+ "docker.runFailed": "Failed to run Docker container: {{message}}",
129
+ "docker.loginStep1": "Step 1: Run the following in your host terminal to get an OAuth token:",
130
+ "docker.loginStep2": "Step 2: Set the token as an environment variable and start in Docker mode:",
131
+ "docker.loginStep3": "The token is long-lived. Add the export to .bashrc or .zshrc to persist it."
108
132
  }
@@ -93,6 +93,8 @@
93
93
  "update.disabled": "無効",
94
94
  "update.enabled": "有効 (自動再起動: {{autoRestart}})",
95
95
  "update.checkFailed": "バージョンチェックに失敗しました: {{message}}",
96
+ "update.skipDev": "開発モードを検出しました。自動更新はサポートされていません。",
97
+ "update.skipLocal": "ローカルインストールを検出しました。更新するにはプロジェクト内で \"npm update @ai-support-agent/cli\" を実行してください。",
96
98
 
97
99
  "cmd.setProjectDir": "プロジェクトディレクトリを設定",
98
100
  "cmd.setProjectDir.project": "プロジェクトコード",
@@ -104,5 +106,27 @@
104
106
  "projectDir.noProject": "プロジェクト \"{{projectCode}}\" は登録されていません。",
105
107
  "projectDir.initialized": "プロジェクトディレクトリを初期化しました: {{projectDir}} ({{projectCode}})",
106
108
  "projectDir.usageHint": "使い方: set-project-dir --project <code> --path <path> または --default <template>",
107
- "projectDir.cleaned": "メタデータディレクトリを削除しました: {{metadataDir}}"
109
+ "projectDir.cleaned": "メタデータディレクトリを削除しました: {{metadataDir}}",
110
+
111
+ "cmd.setAutoUpdate": "自動更新を設定",
112
+ "cmd.setAutoUpdate.enable": "自動更新を有効化",
113
+ "cmd.setAutoUpdate.disable": "自動更新を無効化",
114
+ "cmd.setAutoUpdate.channel": "更新チャネルを設定(latest, beta, alpha)",
115
+ "autoUpdate.usageHint": "使い方: set-auto-update --enable | --disable | --channel <channel>",
116
+ "autoUpdate.conflictFlags": "--enable と --disable は同時に使用できません。",
117
+ "autoUpdate.disabled": "自動更新を無効にしました。",
118
+ "autoUpdate.enabled": "自動更新を有効にしました(チャネル: {{channel}})。",
119
+ "autoUpdate.channelSet": "更新チャネルを \"{{channel}}\" に設定しました。",
120
+
121
+ "cmd.start.docker": "Dockerコンテナ内で実行",
122
+ "cmd.dockerLogin": "Dockerコンテナ内でClaude Codeにログイン",
123
+ "docker.notAvailable": "Dockerが利用できません。Docker Desktopが起動していることを確認してください。",
124
+ "docker.building": "Dockerイメージをビルド中...",
125
+ "docker.buildComplete": "Dockerイメージのビルドが完了しました",
126
+ "docker.imageFound": "既存のDockerイメージを使用します ({{version}})",
127
+ "docker.starting": "Dockerコンテナを起動中...",
128
+ "docker.runFailed": "Dockerコンテナの実行に失敗しました: {{message}}",
129
+ "docker.loginStep1": "Step 1: ホスト側のターミナルで以下を実行し、OAuthトークンを取得してください:",
130
+ "docker.loginStep2": "Step 2: 取得したトークンを環境変数に設定してDockerモードで起動:",
131
+ "docker.loginStep3": "トークンは長期間有効です。毎回設定が必要な場合は .bashrc や .zshrc に export を追加してください。"
108
132
  }
@@ -93,6 +93,8 @@
93
93
  "update.disabled": "disabled",
94
94
  "update.enabled": "enabled (auto-restart: {{autoRestart}})",
95
95
  "update.checkFailed": "Version check failed: {{message}}",
96
+ "update.skipDev": "Development mode detected. Automatic update is not supported.",
97
+ "update.skipLocal": "Local installation detected. Run \"npm update @ai-support-agent/cli\" in your project to update.",
96
98
 
97
99
  "cmd.setProjectDir": "Set project directory",
98
100
  "cmd.setProjectDir.project": "Project code",
@@ -104,5 +106,27 @@
104
106
  "projectDir.noProject": "Project \"{{projectCode}}\" is not registered.",
105
107
  "projectDir.initialized": "Project directory initialized: {{projectDir}} ({{projectCode}})",
106
108
  "projectDir.usageHint": "Usage: set-project-dir --project <code> --path <path> OR --default <template>",
107
- "projectDir.cleaned": "Cleaned up metadata directory: {{metadataDir}}"
109
+ "projectDir.cleaned": "Cleaned up metadata directory: {{metadataDir}}",
110
+
111
+ "cmd.setAutoUpdate": "Configure automatic updates",
112
+ "cmd.setAutoUpdate.enable": "Enable automatic updates",
113
+ "cmd.setAutoUpdate.disable": "Disable automatic updates",
114
+ "cmd.setAutoUpdate.channel": "Set update channel (latest, beta, alpha)",
115
+ "autoUpdate.usageHint": "Usage: set-auto-update --enable | --disable | --channel <channel>",
116
+ "autoUpdate.conflictFlags": "Cannot use --enable and --disable together.",
117
+ "autoUpdate.disabled": "Automatic updates disabled.",
118
+ "autoUpdate.enabled": "Automatic updates enabled (channel: {{channel}}).",
119
+ "autoUpdate.channelSet": "Update channel set to \"{{channel}}\".",
120
+
121
+ "cmd.start.docker": "Run inside a Docker container",
122
+ "cmd.dockerLogin": "Log in to Claude Code inside a Docker container",
123
+ "docker.notAvailable": "Docker is not available. Make sure Docker Desktop is running.",
124
+ "docker.building": "Building Docker image...",
125
+ "docker.buildComplete": "Docker image build complete",
126
+ "docker.imageFound": "Using existing Docker image ({{version}})",
127
+ "docker.starting": "Starting Docker container...",
128
+ "docker.runFailed": "Failed to run Docker container: {{message}}",
129
+ "docker.loginStep1": "Step 1: Run the following in your host terminal to get an OAuth token:",
130
+ "docker.loginStep2": "Step 2: Set the token as an environment variable and start in Docker mode:",
131
+ "docker.loginStep3": "The token is long-lived. Add the export to .bashrc or .zshrc to persist it."
108
132
  }
@@ -93,6 +93,8 @@
93
93
  "update.disabled": "無効",
94
94
  "update.enabled": "有効 (自動再起動: {{autoRestart}})",
95
95
  "update.checkFailed": "バージョンチェックに失敗しました: {{message}}",
96
+ "update.skipDev": "開発モードを検出しました。自動更新はサポートされていません。",
97
+ "update.skipLocal": "ローカルインストールを検出しました。更新するにはプロジェクト内で \"npm update @ai-support-agent/cli\" を実行してください。",
96
98
 
97
99
  "cmd.setProjectDir": "プロジェクトディレクトリを設定",
98
100
  "cmd.setProjectDir.project": "プロジェクトコード",
@@ -104,5 +106,27 @@
104
106
  "projectDir.noProject": "プロジェクト \"{{projectCode}}\" は登録されていません。",
105
107
  "projectDir.initialized": "プロジェクトディレクトリを初期化しました: {{projectDir}} ({{projectCode}})",
106
108
  "projectDir.usageHint": "使い方: set-project-dir --project <code> --path <path> または --default <template>",
107
- "projectDir.cleaned": "メタデータディレクトリを削除しました: {{metadataDir}}"
109
+ "projectDir.cleaned": "メタデータディレクトリを削除しました: {{metadataDir}}",
110
+
111
+ "cmd.setAutoUpdate": "自動更新を設定",
112
+ "cmd.setAutoUpdate.enable": "自動更新を有効化",
113
+ "cmd.setAutoUpdate.disable": "自動更新を無効化",
114
+ "cmd.setAutoUpdate.channel": "更新チャネルを設定(latest, beta, alpha)",
115
+ "autoUpdate.usageHint": "使い方: set-auto-update --enable | --disable | --channel <channel>",
116
+ "autoUpdate.conflictFlags": "--enable と --disable は同時に使用できません。",
117
+ "autoUpdate.disabled": "自動更新を無効にしました。",
118
+ "autoUpdate.enabled": "自動更新を有効にしました(チャネル: {{channel}})。",
119
+ "autoUpdate.channelSet": "更新チャネルを \"{{channel}}\" に設定しました。",
120
+
121
+ "cmd.start.docker": "Dockerコンテナ内で実行",
122
+ "cmd.dockerLogin": "Dockerコンテナ内でClaude Codeにログイン",
123
+ "docker.notAvailable": "Dockerが利用できません。Docker Desktopが起動していることを確認してください。",
124
+ "docker.building": "Dockerイメージをビルド中...",
125
+ "docker.buildComplete": "Dockerイメージのビルドが完了しました",
126
+ "docker.imageFound": "既存のDockerイメージを使用します ({{version}})",
127
+ "docker.starting": "Dockerコンテナを起動中...",
128
+ "docker.runFailed": "Dockerコンテナの実行に失敗しました: {{message}}",
129
+ "docker.loginStep1": "Step 1: ホスト側のターミナルで以下を実行し、OAuthトークンを取得してください:",
130
+ "docker.loginStep2": "Step 2: 取得したトークンを環境変数に設定してDockerモードで起動:",
131
+ "docker.loginStep3": "トークンは長期間有効です。毎回設定が必要な場合は .bashrc や .zshrc に export を追加してください。"
108
132
  }
package/dist/logger.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ /** Mask secrets in log messages */
2
+ export declare function maskSecrets(message: string): string;
1
3
  export declare const logger: {
2
4
  setVerbose(enabled: boolean): void;
3
5
  info(message: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,MAAM;wBACG,OAAO,GAAG,IAAI;kBAIpB,MAAM,GAAG,IAAI;kBAIb,MAAM,GAAG,IAAI;mBAIZ,MAAM,GAAG,IAAI;mBAIb,MAAM,GAAG,IAAI;qBAMX,MAAM,GAAG,IAAI;CAG/B,CAAA"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AA+BA,mCAAmC;AACnC,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQnD;AAMD,eAAO,MAAM,MAAM;wBACG,OAAO,GAAG,IAAI;kBAIpB,MAAM,GAAG,IAAI;kBAIb,MAAM,GAAG,IAAI;mBAIZ,MAAM,GAAG,IAAI;mBAIb,MAAM,GAAG,IAAI;qBAMX,MAAM,GAAG,IAAI;CAG/B,CAAA"}
package/dist/logger.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.logger = void 0;
4
+ exports.maskSecrets = maskSecrets;
4
5
  const COLORS = {
5
6
  reset: '\x1b[0m',
6
7
  red: '\x1b[31m',
@@ -20,8 +21,26 @@ function timestamp() {
20
21
  const s = String(now.getSeconds()).padStart(2, '0');
21
22
  return `${y}-${mo}-${d} ${h}:${mi}:${s}`;
22
23
  }
24
+ const SECRET_PATTERNS = [
25
+ // AWS Access Key IDs
26
+ { pattern: /(AKIA[A-Z0-9]{16})/g, replacement: 'AKIA****' },
27
+ // Key-value pairs with secret-like keys
28
+ { pattern: /((?:password|secret|token|api_key|apikey|access_key|secret_key|session_token|authorization)\s*[:=]\s*["']?)([^\s"',}{]+)/gi, replacement: '$1****' },
29
+ // Bearer tokens
30
+ { pattern: /(Bearer\s+)[^\s]+/gi, replacement: '$1****' },
31
+ ];
32
+ /** Mask secrets in log messages */
33
+ function maskSecrets(message) {
34
+ let masked = message;
35
+ for (const { pattern, replacement } of SECRET_PATTERNS) {
36
+ // Reset lastIndex for global regexps
37
+ pattern.lastIndex = 0;
38
+ masked = masked.replace(pattern, replacement);
39
+ }
40
+ return masked;
41
+ }
23
42
  function formatLog(level, color, message) {
24
- return `${COLORS.gray}[${timestamp()}]${COLORS.reset} ${color}${level}${COLORS.reset} ${message}`;
43
+ return `${COLORS.gray}[${timestamp()}]${COLORS.reset} ${color}${level}${COLORS.reset} ${maskSecrets(message)}`;
25
44
  }
26
45
  exports.logger = {
27
46
  setVerbose(enabled) {
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAAA,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;CACR,CAAA;AAEV,IAAI,cAAc,GAAG,KAAK,CAAA;AAE1B,SAAS,SAAS;IAChB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACtD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACpD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACnD,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAA;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,KAAa,EAAE,OAAe;IAC9D,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,EAAE,CAAA;AACnG,CAAC;AAEY,QAAA,MAAM,GAAG;IACpB,UAAU,CAAC,OAAgB;QACzB,cAAc,GAAG,OAAO,CAAA;IAC1B,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC,CAAA;IAC3D,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAgCA,kCAQC;AAxCD,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;CACR,CAAA;AAEV,IAAI,cAAc,GAAG,KAAK,CAAA;AAE1B,SAAS,SAAS;IAChB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACtD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAChD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACpD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACnD,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAA;AAC1C,CAAC;AAED,MAAM,eAAe,GAAoD;IACvE,qBAAqB;IACrB,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,UAAU,EAAE;IAC3D,wCAAwC;IACxC,EAAE,OAAO,EAAE,4HAA4H,EAAE,WAAW,EAAE,QAAQ,EAAE;IAChK,gBAAgB;IAChB,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,QAAQ,EAAE;CAC1D,CAAA;AAED,mCAAmC;AACnC,SAAgB,WAAW,CAAC,OAAe;IACzC,IAAI,MAAM,GAAG,OAAO,CAAA;IACpB,KAAK,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,eAAe,EAAE,CAAC;QACvD,qCAAqC;QACrC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;QACrB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,KAAa,EAAE,OAAe;IAC9D,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAA;AAChH,CAAC;AAEY,QAAA,MAAM,GAAG;IACpB,UAAU,CAAC,OAAgB;QACzB,cAAc,GAAG,OAAO,CAAA;IAC1B,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC,CAAA;IAC3D,CAAC;CACF,CAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * MCP 設定ファイルのパスを返す
3
+ */
4
+ export declare function getMcpConfigPath(projectDir: string): string;
5
+ /**
6
+ * MCP 設定 JSON を構築する
7
+ *
8
+ * token はファイルに書かない。環境変数参照にする。
9
+ */
10
+ export declare function buildMcpConfig(apiUrl: string, projectCode: string, mcpServerPath: string): Record<string, unknown>;
11
+ /**
12
+ * MCP 設定ファイルを書き出す
13
+ *
14
+ * 0o600 権限で作成し、token は環境変数参照にする。
15
+ */
16
+ export declare function writeMcpConfig(projectDir: string, apiUrl: string, token: string, projectCode: string, mcpServerPath: string): string;
17
+ //# sourceMappingURL=config-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-writer.d.ts","sourceRoot":"","sources":["../../src/mcp/config-writer.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,MAAM,CA2BR"}