@ai-support-agent/cli 0.0.34 → 0.0.35-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 (81) hide show
  1. package/dist/agent-config-sync.d.ts +3 -0
  2. package/dist/agent-config-sync.d.ts.map +1 -1
  3. package/dist/agent-config-sync.js +16 -0
  4. package/dist/agent-config-sync.js.map +1 -1
  5. package/dist/agent-runner.d.ts +6 -0
  6. package/dist/agent-runner.d.ts.map +1 -1
  7. package/dist/agent-runner.js +29 -2
  8. package/dist/agent-runner.js.map +1 -1
  9. package/dist/agent-transport.d.ts.map +1 -1
  10. package/dist/agent-transport.js +6 -5
  11. package/dist/agent-transport.js.map +1 -1
  12. package/dist/api-client.js +1 -1
  13. package/dist/api-client.js.map +1 -1
  14. package/dist/auth-server.d.ts +1 -0
  15. package/dist/auth-server.d.ts.map +1 -1
  16. package/dist/auth-server.js +1 -0
  17. package/dist/auth-server.js.map +1 -1
  18. package/dist/aws-profile.d.ts.map +1 -1
  19. package/dist/aws-profile.js +2 -6
  20. package/dist/aws-profile.js.map +1 -1
  21. package/dist/cli/auth-commands.d.ts.map +1 -1
  22. package/dist/cli/auth-commands.js +23 -12
  23. package/dist/cli/auth-commands.js.map +1 -1
  24. package/dist/cli/service/darwin-service.d.ts +33 -1
  25. package/dist/cli/service/darwin-service.d.ts.map +1 -1
  26. package/dist/cli/service/darwin-service.js +421 -45
  27. package/dist/cli/service/darwin-service.js.map +1 -1
  28. package/dist/cli/service/types.d.ts +1 -1
  29. package/dist/cli/service/types.d.ts.map +1 -1
  30. package/dist/cli/service-command.d.ts +1 -1
  31. package/dist/cli/service-command.d.ts.map +1 -1
  32. package/dist/cli/service-command.js +6 -6
  33. package/dist/cli/service-command.js.map +1 -1
  34. package/dist/commands/chat-executor.js +1 -1
  35. package/dist/commands/chat-executor.js.map +1 -1
  36. package/dist/commands/docker-commands.d.ts.map +1 -1
  37. package/dist/commands/docker-commands.js +12 -0
  38. package/dist/commands/docker-commands.js.map +1 -1
  39. package/dist/commands/file-transfer.js +1 -1
  40. package/dist/commands/file-transfer.js.map +1 -1
  41. package/dist/config-manager.d.ts +2 -1
  42. package/dist/config-manager.d.ts.map +1 -1
  43. package/dist/config-manager.js +12 -3
  44. package/dist/config-manager.js.map +1 -1
  45. package/dist/constants.d.ts +1 -0
  46. package/dist/constants.d.ts.map +1 -1
  47. package/dist/constants.js +4 -1
  48. package/dist/constants.js.map +1 -1
  49. package/dist/docker/docker-runner.d.ts +18 -0
  50. package/dist/docker/docker-runner.d.ts.map +1 -1
  51. package/dist/docker/docker-runner.js +383 -14
  52. package/dist/docker/docker-runner.js.map +1 -1
  53. package/dist/docker/dockerfile-path.d.ts +9 -0
  54. package/dist/docker/dockerfile-path.d.ts.map +1 -1
  55. package/dist/docker/dockerfile-path.js +15 -0
  56. package/dist/docker/dockerfile-path.js.map +1 -1
  57. package/dist/index.js +4 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/locales/en.json +6 -0
  60. package/dist/locales/ja.json +6 -0
  61. package/dist/locales/locales/en.json +6 -0
  62. package/dist/locales/locales/ja.json +6 -0
  63. package/dist/mcp/tools/read-conversation-file.d.ts.map +1 -1
  64. package/dist/mcp/tools/read-conversation-file.js +3 -1
  65. package/dist/mcp/tools/read-conversation-file.js.map +1 -1
  66. package/dist/project-agent.d.ts +1 -0
  67. package/dist/project-agent.d.ts.map +1 -1
  68. package/dist/project-agent.js +74 -10
  69. package/dist/project-agent.js.map +1 -1
  70. package/dist/project-config-sync.d.ts.map +1 -1
  71. package/dist/project-config-sync.js +1 -3
  72. package/dist/project-config-sync.js.map +1 -1
  73. package/dist/project-dir.d.ts +2 -2
  74. package/dist/project-dir.d.ts.map +1 -1
  75. package/dist/project-dir.js +6 -5
  76. package/dist/project-dir.js.map +1 -1
  77. package/dist/types/config.d.ts +1 -0
  78. package/dist/types/config.d.ts.map +1 -1
  79. package/dist/types/project.d.ts +5 -0
  80. package/dist/types/project.d.ts.map +1 -1
  81. package/package.json +1 -1
@@ -36,6 +36,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.checkDockerAvailable = checkDockerAvailable;
37
37
  exports.imageExists = imageExists;
38
38
  exports.buildImage = buildImage;
39
+ exports.validatePackageNames = validatePackageNames;
40
+ exports.generateProjectDockerfile = generateProjectDockerfile;
41
+ exports.buildProjectImage = buildProjectImage;
39
42
  exports.buildVolumeMounts = buildVolumeMounts;
40
43
  exports.buildEnvArgs = buildEnvArgs;
41
44
  exports.buildContainerArgs = buildContainerArgs;
@@ -63,6 +66,33 @@ const update_checker_1 = require("../update-checker");
63
66
  function toPosixRelative(relativePath) {
64
67
  return relativePath.split(path.sep).join('/');
65
68
  }
69
+ /**
70
+ * Returns true when running via ts-node (i.e. `npm run dev`).
71
+ * In this case, local dist/ should be mounted into containers instead of
72
+ * relying on the npm-installed package inside the image.
73
+ */
74
+ function isRunningViaTsNode() {
75
+ const sym = Symbol.for('ts-node.register.instance');
76
+ return !!process[sym];
77
+ }
78
+ /**
79
+ * Returns extra volume mount args to overlay the local dist/ into the container
80
+ * when running in dev mode (ts-node), so the container uses local source code.
81
+ * Returns an empty array when not in dev mode.
82
+ */
83
+ function buildDevMounts() {
84
+ if (!isRunningViaTsNode())
85
+ return [];
86
+ // __dirname is agent/src/docker — walk up two levels to get agent/
87
+ const agentRoot = path.resolve(__dirname, '..', '..');
88
+ const distDir = path.join(agentRoot, 'dist');
89
+ const localesDir = path.join(agentRoot, 'src', 'locales');
90
+ const containerBase = '/usr/local/lib/node_modules/@ai-support-agent/cli';
91
+ return [
92
+ '-v', `${distDir}:${containerBase}/dist:ro`,
93
+ '-v', `${localesDir}:${containerBase}/dist/locales:ro`,
94
+ ];
95
+ }
66
96
  const IMAGE_NAME = 'ai-support-agent';
67
97
  const PASSTHROUGH_ENV_VARS = [
68
98
  'AI_SUPPORT_AGENT_TOKEN',
@@ -98,6 +128,47 @@ function buildImage(version, customDockerfile) {
98
128
  (0, child_process_1.execFileSync)('docker', ['build', '-t', `${IMAGE_NAME}:${version}`, '--pull=false', '--build-arg', `AGENT_VERSION=${version}`, '-f', dockerfilePath, contextDir], { stdio: 'inherit' });
99
129
  logger_1.logger.success((0, i18n_1.t)('docker.buildComplete'));
100
130
  }
131
+ /** Allowlist for apt package names: letters, digits, hyphens, dots, plus signs, colons */
132
+ const APT_PACKAGE_RE = /^[a-zA-Z0-9][a-zA-Z0-9+\-.:]*$/;
133
+ /** Allowlist for npm package names: scoped (@scope/name) or plain, with version (@x.y.z) */
134
+ const NPM_PACKAGE_RE = /^(@[a-zA-Z0-9_\-.]+\/)?[a-zA-Z0-9_\-.]+(@[a-zA-Z0-9._\-^~*]+)?$/;
135
+ /**
136
+ * Validate a list of package names against an allowlist regex.
137
+ * Throws if any name is invalid to prevent Dockerfile injection.
138
+ */
139
+ function validatePackageNames(packages, type) {
140
+ const re = type === 'apt' ? APT_PACKAGE_RE : NPM_PACKAGE_RE;
141
+ for (const pkg of packages) {
142
+ if (!re.test(pkg)) {
143
+ throw new Error(`Invalid ${type} package name: "${pkg}"`);
144
+ }
145
+ }
146
+ }
147
+ /**
148
+ * Generate a per-project Dockerfile that extends the base agent image.
149
+ */
150
+ function generateProjectDockerfile(baseVersion, aptPackages, npmPackages) {
151
+ validatePackageNames(aptPackages, 'apt');
152
+ validatePackageNames(npmPackages, 'npm');
153
+ const lines = [`FROM ${IMAGE_NAME}:${baseVersion}`];
154
+ if (aptPackages.length > 0) {
155
+ lines.push(`RUN apt-get update && apt-get install -y --no-install-recommends \\`, ` ${aptPackages.join(' \\\n ')} \\`, ` && rm -rf /var/lib/apt/lists/*`);
156
+ }
157
+ if (npmPackages.length > 0) {
158
+ lines.push(`RUN npm install -g ${npmPackages.join(' ')} && npm cache clean --force`);
159
+ }
160
+ return lines.join('\n') + '\n';
161
+ }
162
+ /**
163
+ * Build a per-project Docker image using the given Dockerfile.
164
+ */
165
+ function buildProjectImage(tenantCode, projectCode, baseVersion, dockerfilePath) {
166
+ const imageTag = (0, dockerfile_path_1.getProjectImageTag)(tenantCode, projectCode, baseVersion);
167
+ const contextDir = (0, dockerfile_path_1.getDockerContextDir)();
168
+ logger_1.logger.info(`[docker] Building project image: ${imageTag}`);
169
+ (0, child_process_1.execFileSync)('docker', ['build', '-t', imageTag, '--pull=false', '--build-arg', `AGENT_VERSION=${baseVersion}`, '-f', dockerfilePath, contextDir], { stdio: 'inherit' });
170
+ logger_1.logger.success(`[docker] Project image built: ${imageTag}`);
171
+ }
101
172
  /** Container-internal base path for project directories */
102
173
  const CONTAINER_PROJECTS_BASE = '/workspace/projects';
103
174
  /** Container-internal home directory */
@@ -223,6 +294,9 @@ function buildContainerArgs(opts) {
223
294
  if (opts.updateChannel) {
224
295
  args.push('--update-channel', opts.updateChannel);
225
296
  }
297
+ if (opts.project) {
298
+ args.push('--project', opts.project);
299
+ }
226
300
  return args;
227
301
  }
228
302
  let cachedInstalledVersion = null;
@@ -288,24 +362,31 @@ function dockerLogin() {
288
362
  logger_1.logger.info((0, i18n_1.t)('docker.loginStep3'));
289
363
  }
290
364
  /**
291
- * Called on the host after the container exits with DOCKER_UPDATE_EXIT_CODE.
292
- * Reads the new version from the config-dir volume (written by the container),
365
+ * Called on the host after a container exits with DOCKER_UPDATE_EXIT_CODE.
366
+ * Reads the new version from a project-specific config dir (written by the container),
293
367
  * installs it on the host with npm, then re-execs the process so ensureImage()
294
368
  * picks up the newly installed version and rebuilds the Docker image.
295
369
  */
296
- async function installUpdateAndRestart() {
370
+ async function installUpdateAndRestart(projectConfigDir) {
297
371
  let newVersion;
298
- try {
299
- const versionFile = path.join((0, config_manager_1.getConfigDir)(), 'update-version.json');
300
- const raw = fs.readFileSync(versionFile, 'utf-8');
301
- const parsed = JSON.parse(raw);
302
- if (parsed.version && (0, version_1.isValidVersion)(parsed.version)) {
303
- newVersion = parsed.version;
372
+ // First try project-specific config dir, fall back to global config dir
373
+ const searchDirs = projectConfigDir
374
+ ? [projectConfigDir, (0, config_manager_1.getConfigDir)()]
375
+ : [(0, config_manager_1.getConfigDir)()];
376
+ for (const dir of searchDirs) {
377
+ try {
378
+ const versionFile = path.join(dir, 'update-version.json');
379
+ const raw = fs.readFileSync(versionFile, 'utf-8');
380
+ const parsed = JSON.parse(raw);
381
+ if (parsed.version && (0, version_1.isValidVersion)(parsed.version)) {
382
+ newVersion = parsed.version;
383
+ }
384
+ fs.unlinkSync(versionFile);
385
+ break;
386
+ }
387
+ catch {
388
+ // File does not exist in this dir — try next
304
389
  }
305
- fs.unlinkSync(versionFile);
306
- }
307
- catch {
308
- // File may not exist (e.g. auto-updater path) — proceed without it
309
390
  }
310
391
  if (newVersion) {
311
392
  logger_1.logger.info(`[docker] Installing @ai-support-agent/cli@${newVersion} on host...`);
@@ -351,6 +432,246 @@ function syncDockerfileToConfigDir() {
351
432
  logger_1.logger.warn((0, i18n_1.t)('docker.dockerfileSyncFailed', { message: err instanceof Error ? err.message : String(err) }));
352
433
  }
353
434
  }
435
+ // ---------------------------------------------------------------------------
436
+ // Per-project volume mount helpers
437
+ // ---------------------------------------------------------------------------
438
+ /**
439
+ * Build volume mounts and env args for a single project container.
440
+ * Each project gets its own isolated config dir under ~/.ai-support-agent/projects/{tenantCode}/{projectCode}/.ai-support-agent/
441
+ */
442
+ function buildProjectVolumeMounts(project, projectConfigHostDir) {
443
+ const home = os.homedir();
444
+ const mounts = [];
445
+ const envArgs = [];
446
+ // Claude Code OAuth tokens and config — mount to container home
447
+ const claudeDir = path.join(home, '.claude');
448
+ if (fs.existsSync(claudeDir)) {
449
+ mounts.push('-v', `${claudeDir}:${path.posix.join(CONTAINER_HOME, '.claude')}:rw`);
450
+ }
451
+ const claudeJson = path.join(home, '.claude.json');
452
+ if (fs.existsSync(claudeJson)) {
453
+ mounts.push('-v', `${claudeJson}:${path.posix.join(CONTAINER_HOME, '.claude.json')}:rw`);
454
+ }
455
+ // Per-project isolated config dir — mounts to /home/node/.ai-support-agent inside container
456
+ const containerConfigDir = path.posix.join(CONTAINER_HOME, '.ai-support-agent');
457
+ fs.mkdirSync(projectConfigHostDir, { recursive: true, mode: 0o700 });
458
+ mounts.push('-v', `${projectConfigHostDir}:${containerConfigDir}:rw`);
459
+ // Standard env vars for per-project container
460
+ envArgs.push('-e', 'AI_SUPPORT_AGENT_IN_DOCKER=1');
461
+ envArgs.push('-e', `HOME=${CONTAINER_HOME}`);
462
+ envArgs.push('-e', `AI_SUPPORT_AGENT_CONFIG_DIR=${containerConfigDir}`);
463
+ // Pass token and apiUrl per-project
464
+ if (project.token) {
465
+ envArgs.push('-e', `AI_SUPPORT_AGENT_TOKEN=${project.token}`);
466
+ }
467
+ if (project.apiUrl) {
468
+ // Replace localhost/127.0.0.1 with host.docker.internal so the container can reach the host
469
+ const containerApiUrl = project.apiUrl.replace(/^(https?:\/\/)(localhost|127\.0\.0\.1)(:\d+)?/, (_, scheme, _host, port) => `${scheme}host.docker.internal${port ?? ''}`);
470
+ envArgs.push('-e', `AI_SUPPORT_AGENT_API_URL=${containerApiUrl}`);
471
+ }
472
+ // Pass ANTHROPIC_API_KEY and CLAUDE_CODE_OAUTH_TOKEN if set
473
+ for (const key of ['ANTHROPIC_API_KEY', 'CLAUDE_CODE_OAUTH_TOKEN']) {
474
+ if (process.env[key]) {
475
+ envArgs.push('-e', `${key}=${process.env[key]}`);
476
+ }
477
+ }
478
+ // Project dir mapping: single project only
479
+ const containerProjectDir = `${CONTAINER_PROJECTS_BASE}/${project.projectCode}`;
480
+ const blockedPrefixes = [...security_1.BLOCKED_PATH_PREFIXES, ...(0, security_1.getSensitiveHomePaths)()];
481
+ if (project.projectDir && fs.existsSync(project.projectDir)) {
482
+ let resolved;
483
+ try {
484
+ resolved = fs.realpathSync(project.projectDir);
485
+ const isBlocked = blockedPrefixes.some((prefix) => {
486
+ const prefixWithoutSlash = prefix.replace(/\/$/, '');
487
+ return resolved === prefixWithoutSlash || resolved.startsWith(prefix);
488
+ });
489
+ if (!isBlocked) {
490
+ mounts.push('-v', `${project.projectDir}:${containerProjectDir}:rw`);
491
+ envArgs.push('-e', `AI_SUPPORT_AGENT_PROJECT_DIR_MAP=${project.projectCode}=${containerProjectDir}`);
492
+ }
493
+ else {
494
+ logger_1.logger.warn(`[docker] Skipping blocked path for volume mount: ${project.projectDir}`);
495
+ }
496
+ }
497
+ catch {
498
+ logger_1.logger.warn(`[docker] Cannot resolve path, skipping: ${project.projectDir}`);
499
+ }
500
+ }
501
+ return { mounts, envArgs };
502
+ }
503
+ /**
504
+ * Get the host-side per-project config directory.
505
+ * Located at: ~/.ai-support-agent/projects/{tenantCode}/{projectCode}/.ai-support-agent/
506
+ */
507
+ function getProjectConfigHostDir(project) {
508
+ return path.join((0, config_manager_1.getConfigDir)(), 'projects', project.tenantCode, project.projectCode, '.ai-support-agent');
509
+ }
510
+ /**
511
+ * Manages one Docker container per project.
512
+ * Spawned from runInDocker() when multiple projects are configured.
513
+ */
514
+ class DockerSupervisor {
515
+ handles = new Map();
516
+ updating = false;
517
+ opts;
518
+ version;
519
+ onAllStopped;
520
+ constructor(version, opts) {
521
+ this.version = version;
522
+ this.opts = opts;
523
+ }
524
+ projectKey(project) {
525
+ return `${project.tenantCode}/${project.projectCode}`;
526
+ }
527
+ start(projects, onStop) {
528
+ this.onAllStopped = onStop;
529
+ for (const project of projects) {
530
+ this.spawnProject(project);
531
+ }
532
+ // Setup shutdown handlers
533
+ let shuttingDown = false;
534
+ const shutdown = () => {
535
+ if (shuttingDown)
536
+ return;
537
+ shuttingDown = true;
538
+ // Set updating flag so the close handler does not call process.exit again
539
+ this.updating = true;
540
+ logger_1.logger.info((0, i18n_1.t)('runner.shuttingDown'));
541
+ this.stopAll();
542
+ onStop?.();
543
+ process.exit(0);
544
+ };
545
+ process.on('SIGINT', () => shutdown());
546
+ process.on('SIGTERM', () => shutdown());
547
+ }
548
+ getImageTag(project) {
549
+ const projectTag = (0, dockerfile_path_1.getProjectImageTag)(project.tenantCode, project.projectCode, this.version);
550
+ try {
551
+ (0, child_process_1.execFileSync)('docker', ['image', 'inspect', projectTag], { stdio: 'ignore' });
552
+ return projectTag;
553
+ }
554
+ catch {
555
+ return `${IMAGE_NAME}:${this.version}`;
556
+ }
557
+ }
558
+ async rebuildAndRestart(project, projectConfigHostDir) {
559
+ const rebuildMarker = path.join(projectConfigHostDir, 'docker-rebuild-needed');
560
+ if (fs.existsSync(rebuildMarker)) {
561
+ fs.unlinkSync(rebuildMarker);
562
+ // The container writes Dockerfile into its configDir root, which maps to projectConfigHostDir on host.
563
+ const projectDockerfile = path.join(projectConfigHostDir, 'Dockerfile');
564
+ if (fs.existsSync(projectDockerfile)) {
565
+ try {
566
+ buildProjectImage(project.tenantCode, project.projectCode, this.version, projectDockerfile);
567
+ // Copy the docker-customization-hash file written by the container so the
568
+ // next container startup knows the current customization was already built.
569
+ const srcHash = path.join(projectConfigHostDir, 'docker-customization-hash');
570
+ const dstHash = path.join(projectConfigHostDir, 'docker-built-hash');
571
+ if (fs.existsSync(srcHash)) {
572
+ fs.copyFileSync(srcHash, dstHash);
573
+ }
574
+ }
575
+ catch (err) {
576
+ logger_1.logger.error(`[docker] Image build failed: ${err instanceof Error ? err.message : String(err)}`);
577
+ logger_1.logger.warn(`[docker] Container ${this.projectKey(project)} will start with previous image due to build failure.`);
578
+ // Write docker-built-hash even on failure so the next startup does not
579
+ // attempt the same failed build again. The container starts with the
580
+ // previous (base) image until the configuration is fixed and changed.
581
+ const srcHash = path.join(projectConfigHostDir, 'docker-customization-hash');
582
+ const dstHash = path.join(projectConfigHostDir, 'docker-built-hash');
583
+ if (fs.existsSync(srcHash)) {
584
+ fs.copyFileSync(srcHash, dstHash);
585
+ }
586
+ }
587
+ }
588
+ }
589
+ this.spawnProject(project);
590
+ }
591
+ spawnProject(project) {
592
+ const key = this.projectKey(project);
593
+ const projectConfigHostDir = getProjectConfigHostDir(project);
594
+ const { mounts, envArgs } = buildProjectVolumeMounts(project, projectConfigHostDir);
595
+ const containerArgs = [
596
+ 'ai-support-agent', 'start', '--no-docker',
597
+ '--project', key,
598
+ ];
599
+ if (this.opts.pollInterval !== undefined) {
600
+ containerArgs.push('--poll-interval', String(this.opts.pollInterval));
601
+ }
602
+ if (this.opts.heartbeatInterval !== undefined) {
603
+ containerArgs.push('--heartbeat-interval', String(this.opts.heartbeatInterval));
604
+ }
605
+ if (this.opts.verbose) {
606
+ containerArgs.push('--verbose');
607
+ }
608
+ if (this.opts.autoUpdate === false) {
609
+ containerArgs.push('--no-auto-update');
610
+ }
611
+ if (this.opts.updateChannel) {
612
+ containerArgs.push('--update-channel', this.opts.updateChannel);
613
+ }
614
+ const interactive = process.stdin.isTTY ? ['-it'] : ['-i'];
615
+ const imageTag = this.getImageTag(project);
616
+ const dockerArgs = [
617
+ 'run', '--rm', ...interactive,
618
+ ...(process.getuid ? ['--user', `${process.getuid()}:${process.getgid()}`] : []),
619
+ ...mounts,
620
+ ...buildDevMounts(),
621
+ ...envArgs,
622
+ imageTag,
623
+ ...containerArgs,
624
+ ];
625
+ logger_1.logger.info(`[docker] Starting container for project: ${key}`);
626
+ const child = (0, child_process_1.spawn)('docker', dockerArgs, { stdio: 'inherit' });
627
+ const handle = {
628
+ project,
629
+ child,
630
+ version: this.version,
631
+ closeHandled: false,
632
+ };
633
+ this.handles.set(key, handle);
634
+ child.on('error', (err) => {
635
+ logger_1.logger.error(`[docker] Container error for ${key}: ${err.message}`);
636
+ });
637
+ child.on('close', (code) => {
638
+ if (handle.closeHandled)
639
+ return;
640
+ handle.closeHandled = true;
641
+ this.handles.delete(key);
642
+ if (code === constants_1.DOCKER_UPDATE_EXIT_CODE && !this.updating) {
643
+ this.updating = true;
644
+ logger_1.logger.info(`[docker] Container ${key} exited for update. Stopping all containers and rebuilding...`);
645
+ this.stopAll();
646
+ void installUpdateAndRestart(projectConfigHostDir).catch((err) => {
647
+ logger_1.logger.error(`[docker] Update failed: ${err instanceof Error ? err.message : String(err)}`);
648
+ process.exit(1);
649
+ });
650
+ return;
651
+ }
652
+ if (code === constants_1.DOCKER_RESTART_EXIT_CODE && !this.updating) {
653
+ logger_1.logger.info(`[docker] Container ${key} requested restart. Rebuilding image if needed...`);
654
+ void this.rebuildAndRestart(project, projectConfigHostDir).catch((err) => {
655
+ logger_1.logger.error(`[docker] Restart failed: ${err instanceof Error ? err.message : String(err)}`);
656
+ });
657
+ return;
658
+ }
659
+ if (this.handles.size === 0 && !this.updating) {
660
+ // All containers have exited cleanly
661
+ this.onAllStopped?.();
662
+ process.exit(code ?? 0);
663
+ }
664
+ });
665
+ }
666
+ stopAll() {
667
+ for (const [key, handle] of this.handles) {
668
+ if (!handle.closeHandled) {
669
+ logger_1.logger.info(`[docker] Stopping container for project: ${key}`);
670
+ handle.child.kill('SIGTERM');
671
+ }
672
+ }
673
+ }
674
+ }
354
675
  let isDockerRunning = false;
355
676
  /** Reset the running flag (for testing). */
356
677
  function resetIsDockerRunning() {
@@ -378,6 +699,55 @@ function runInDocker(opts) {
378
699
  // Resolve Dockerfile: CLI flag > config.dockerfilePath > configDir/Dockerfile > bundled default
379
700
  const customDockerfile = opts.dockerfile ?? config?.dockerfilePath;
380
701
  const version = ensureImage(customDockerfile);
702
+ // Determine projects to run (skip entries without tenantCode)
703
+ const allProjects = config ? (0, config_manager_1.getProjectList)(config) : [];
704
+ let projects;
705
+ if (opts.project) {
706
+ // Single-project mode (e.g. for testing or external invocation)
707
+ const slashIdx = opts.project.indexOf('/');
708
+ if (slashIdx < 0) {
709
+ logger_1.logger.error(`[docker] --project must be in "tenantCode/projectCode" format: ${opts.project}`);
710
+ process.exit(1);
711
+ return;
712
+ }
713
+ const tenantCode = opts.project.substring(0, slashIdx);
714
+ const projectCode = opts.project.substring(slashIdx + 1);
715
+ projects = allProjects.filter((p) => p.tenantCode === tenantCode && p.projectCode === projectCode);
716
+ if (projects.length === 0) {
717
+ if (opts.token || process.env.AI_SUPPORT_AGENT_TOKEN) {
718
+ // Fallback: create a temporary project from env/CLI args
719
+ projects = [{
720
+ tenantCode,
721
+ projectCode,
722
+ token: opts.token ?? process.env.AI_SUPPORT_AGENT_TOKEN ?? '',
723
+ apiUrl: opts.apiUrl ?? process.env.AI_SUPPORT_AGENT_API_URL ?? '',
724
+ }];
725
+ }
726
+ else {
727
+ logger_1.logger.error(`[docker] Project not found: ${opts.project}`);
728
+ process.exit(1);
729
+ return;
730
+ }
731
+ }
732
+ }
733
+ else if (allProjects.length > 0) {
734
+ // Multi-project supervisor mode: one container per project
735
+ projects = allProjects;
736
+ }
737
+ else {
738
+ // No config: run single container with legacy volume mount approach
739
+ projects = [];
740
+ }
741
+ (0, claude_config_validator_1.ensureClaudeJsonIntegrity)();
742
+ if (projects.length > 0) {
743
+ // Per-project container mode (new architecture)
744
+ logger_1.logger.info(`[docker] Starting ${projects.length} project container(s)...`);
745
+ const supervisor = new DockerSupervisor(version, opts);
746
+ supervisor.start(projects, () => { isDockerRunning = false; });
747
+ return;
748
+ }
749
+ // Legacy fallback: single container handling all projects via shared volume mount
750
+ // (used when no projects are registered in config — e.g. token/apiUrl passed via CLI)
381
751
  logger_1.logger.info((0, i18n_1.t)('docker.starting'));
382
752
  const { mounts, projectMappings } = buildVolumeMounts();
383
753
  const envArgs = buildEnvArgs(projectMappings);
@@ -391,7 +761,6 @@ function runInDocker(opts) {
391
761
  `${IMAGE_NAME}:${version}`,
392
762
  ...containerArgs,
393
763
  ];
394
- (0, claude_config_validator_1.ensureClaudeJsonIntegrity)();
395
764
  const child = (0, child_process_1.spawn)('docker', dockerArgs, {
396
765
  stdio: 'inherit',
397
766
  });
@@ -1 +1 @@
1
- {"version":3,"file":"docker-runner.js","sourceRoot":"","sources":["../../src/docker/docker-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker-runner.js","sourceRoot":"","sources":["../../src/docker/docker-runner.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,15 @@ export declare function getDockerContextDir(): string;
12
12
  * (~/.ai-support-agent/Dockerfile)
13
13
  */
14
14
  export declare function getConfigDockerfilePath(): string;
15
+ /**
16
+ * Get the path to the per-project Dockerfile in the config directory.
17
+ * (~/.ai-support-agent/projects/{tenantCode}/{projectCode}/Dockerfile)
18
+ */
19
+ export declare function getProjectDockerfilePath(tenantCode: string, projectCode: string): string;
20
+ /**
21
+ * Get the Docker image tag for a per-project image.
22
+ */
23
+ export declare function getProjectImageTag(tenantCode: string, projectCode: string, version: string): string;
15
24
  export interface DockerfileResolution {
16
25
  dockerfilePath: string;
17
26
  contextDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"dockerfile-path.d.ts","sourceRoot":"","sources":["../../src/docker/dockerfile-path.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAY3E"}
1
+ {"version":3,"file":"dockerfile-path.d.ts","sourceRoot":"","sources":["../../src/docker/dockerfile-path.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAExF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnG;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAY3E"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getDockerfilePath = getDockerfilePath;
4
4
  exports.getDockerContextDir = getDockerContextDir;
5
5
  exports.getConfigDockerfilePath = getConfigDockerfilePath;
6
+ exports.getProjectDockerfilePath = getProjectDockerfilePath;
7
+ exports.getProjectImageTag = getProjectImageTag;
6
8
  exports.resolveDockerfile = resolveDockerfile;
7
9
  const path_1 = require("path");
8
10
  const fs_1 = require("fs");
@@ -32,6 +34,19 @@ function getDockerContextDir() {
32
34
  function getConfigDockerfilePath() {
33
35
  return (0, path_1.join)((0, config_manager_1.getConfigDir)(), 'Dockerfile');
34
36
  }
37
+ /**
38
+ * Get the path to the per-project Dockerfile in the config directory.
39
+ * (~/.ai-support-agent/projects/{tenantCode}/{projectCode}/Dockerfile)
40
+ */
41
+ function getProjectDockerfilePath(tenantCode, projectCode) {
42
+ return (0, path_1.join)((0, config_manager_1.getConfigDir)(), 'projects', tenantCode, projectCode, 'Dockerfile');
43
+ }
44
+ /**
45
+ * Get the Docker image tag for a per-project image.
46
+ */
47
+ function getProjectImageTag(tenantCode, projectCode, version) {
48
+ return `ai-support-agent-${tenantCode}-${projectCode.toLowerCase()}:${version}`;
49
+ }
35
50
  /**
36
51
  * Resolve which Dockerfile to use for the Docker build.
37
52
  * Priority: customPath > configDir/Dockerfile (if exists) > bundled default
@@ -1 +1 @@
1
- {"version":3,"file":"dockerfile-path.js","sourceRoot":"","sources":["../../src/docker/dockerfile-path.ts"],"names":[],"mappings":";;AASA,8CAOC;AAKD,kDAEC;AAMD,0DAEC;AAWD,8CAYC;AAtDD,+BAAoC;AACpC,2BAA+B;AAE/B,sDAAgD;AAEhD;;;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;AAED;;;GAGG;AACH,SAAgB,uBAAuB;IACrC,OAAO,IAAA,WAAI,EAAC,IAAA,6BAAY,GAAE,EAAE,YAAY,CAAC,CAAA;AAC3C,CAAC;AAOD;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,UAAmB;IACnD,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,IAAA,cAAO,EAAC,UAAU,CAAC,EAAE,CAAA;IACxE,CAAC;IACD,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAA;IAClD,IAAI,IAAA,eAAU,EAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAA,cAAO,EAAC,gBAAgB,CAAC,EAAE,CAAA;IACpF,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,CAAA;AACnF,CAAC"}
1
+ {"version":3,"file":"dockerfile-path.js","sourceRoot":"","sources":["../../src/docker/dockerfile-path.ts"],"names":[],"mappings":";;AASA,8CAOC;AAKD,kDAEC;AAMD,0DAEC;AAMD,4DAEC;AAKD,gDAEC;AAWD,8CAYC;AArED,+BAAoC;AACpC,2BAA+B;AAE/B,sDAAgD;AAEhD;;;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;AAED;;;GAGG;AACH,SAAgB,uBAAuB;IACrC,OAAO,IAAA,WAAI,EAAC,IAAA,6BAAY,GAAE,EAAE,YAAY,CAAC,CAAA;AAC3C,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,UAAkB,EAAE,WAAmB;IAC9E,OAAO,IAAA,WAAI,EAAC,IAAA,6BAAY,GAAE,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;AAChF,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,UAAkB,EAAE,WAAmB,EAAE,OAAe;IACzF,OAAO,oBAAoB,UAAU,IAAI,WAAW,CAAC,WAAW,EAAE,IAAI,OAAO,EAAE,CAAA;AACjF,CAAC;AAOD;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,UAAmB;IACnD,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,IAAA,cAAO,EAAC,UAAU,CAAC,EAAE,CAAA;IACxE,CAAC;IACD,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAA;IAClD,IAAI,IAAA,eAAU,EAAC,gBAAgB,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAA,cAAO,EAAC,gBAAgB,CAAC,EAAE,CAAA;IACpF,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,EAAE,CAAA;AACnF,CAAC"}
package/dist/index.js CHANGED
@@ -68,6 +68,7 @@ program
68
68
  .option('--no-docker', (0, i18n_1.t)('cmd.start.noDocker'))
69
69
  .option('--dockerfile <path>', (0, i18n_1.t)('cmd.start.dockerfile'))
70
70
  .option('--no-dockerfile-sync', (0, i18n_1.t)('cmd.start.noDockerfileSync'))
71
+ .option('--project <tenantCode/projectCode>', (0, i18n_1.t)('cmd.start.project'))
71
72
  .action(async (opts) => {
72
73
  if (opts.docker) {
73
74
  const { runInDocker } = await Promise.resolve().then(() => __importStar(require('./docker/docker-runner')));
@@ -81,6 +82,7 @@ program
81
82
  updateChannel: opts.updateChannel,
82
83
  dockerfile: opts.dockerfile,
83
84
  dockerfileSync: opts.dockerfileSync,
85
+ project: opts.project,
84
86
  });
85
87
  return;
86
88
  }
@@ -93,6 +95,7 @@ program
93
95
  verbose: opts.verbose,
94
96
  autoUpdate: opts.autoUpdate,
95
97
  updateChannel: updateChannel,
98
+ project: opts.project,
96
99
  });
97
100
  });
98
101
  (0, auth_commands_1.registerAuthCommands)(program);
@@ -106,7 +109,7 @@ program
106
109
  const project = config?.projects?.find((p) => p.projectCode === projectCode);
107
110
  if (project?.projectDir || config?.defaultProjectDir) {
108
111
  try {
109
- const projectDir = (0, project_dir_1.resolveProjectDir)({ projectCode, token: '', apiUrl: '', projectDir: project?.projectDir }, config?.defaultProjectDir);
112
+ const projectDir = (0, project_dir_1.resolveProjectDir)({ tenantCode: project?.tenantCode ?? 'unknown', projectCode, token: '', apiUrl: '', projectDir: project?.projectDir }, config?.defaultProjectDir);
110
113
  const metadataDir = (0, project_dir_1.getMetadataDir)(projectDir);
111
114
  if (fs.existsSync(metadataDir)) {
112
115
  fs.rmSync(metadataDir, { recursive: true });