@ai-support-agent/cli 0.1.9-beta.0 → 0.1.10-beta.0

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 (32) hide show
  1. package/dist/cli/service/darwin-service.d.ts +0 -12
  2. package/dist/cli/service/darwin-service.d.ts.map +1 -1
  3. package/dist/cli/service/darwin-service.js +73 -50
  4. package/dist/cli/service/darwin-service.js.map +1 -1
  5. package/dist/cli/service/linux-service.d.ts +0 -25
  6. package/dist/cli/service/linux-service.d.ts.map +1 -1
  7. package/dist/cli/service/linux-service.js +143 -99
  8. package/dist/cli/service/linux-service.js.map +1 -1
  9. package/dist/cli/service/wrapper-helpers.d.ts +70 -0
  10. package/dist/cli/service/wrapper-helpers.d.ts.map +1 -0
  11. package/dist/cli/service/wrapper-helpers.js +140 -0
  12. package/dist/cli/service/wrapper-helpers.js.map +1 -0
  13. package/dist/commands/chat-executor.d.ts.map +1 -1
  14. package/dist/commands/chat-executor.js +13 -2
  15. package/dist/commands/chat-executor.js.map +1 -1
  16. package/dist/commands/file-transfer.d.ts +1 -0
  17. package/dist/commands/file-transfer.d.ts.map +1 -1
  18. package/dist/commands/file-transfer.js +8 -2
  19. package/dist/commands/file-transfer.js.map +1 -1
  20. package/dist/docker/docker-supervisor.d.ts.map +1 -1
  21. package/dist/docker/docker-supervisor.js +24 -2
  22. package/dist/docker/docker-supervisor.js.map +1 -1
  23. package/dist/docker/volume-mount-builder.d.ts.map +1 -1
  24. package/dist/docker/volume-mount-builder.js +15 -1
  25. package/dist/docker/volume-mount-builder.js.map +1 -1
  26. package/dist/locales/en.json +7 -1
  27. package/dist/locales/ja.json +7 -1
  28. package/dist/security.d.ts +24 -0
  29. package/dist/security.d.ts.map +1 -1
  30. package/dist/security.js +41 -0
  31. package/dist/security.js.map +1 -1
  32. package/package.json +1 -1
@@ -34,8 +34,6 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.LinuxServiceStrategy = exports.getNodePath = exports.getCliEntryPoint = void 0;
37
- exports.assertProjectCodeIsSafe = assertProjectCodeIsSafe;
38
- exports.validateProjectDirForMount = validateProjectDirForMount;
39
37
  exports.getProjectUnitName = getProjectUnitName;
40
38
  exports.getProjectUnitFilePath = getProjectUnitFilePath;
41
39
  exports.getAllProjectUnits = getAllProjectUnits;
@@ -53,10 +51,10 @@ const config_manager_1 = require("../../config-manager");
53
51
  const docker_utils_1 = require("../../docker/docker-utils");
54
52
  const i18n_1 = require("../../i18n");
55
53
  const logger_1 = require("../../logger");
56
- const security_1 = require("../../security");
57
54
  const node_paths_1 = require("./node-paths");
58
55
  Object.defineProperty(exports, "getCliEntryPoint", { enumerable: true, get: function () { return node_paths_1.getCliEntryPoint; } });
59
56
  Object.defineProperty(exports, "getNodePath", { enumerable: true, get: function () { return node_paths_1.getNodePath; } });
57
+ const wrapper_helpers_1 = require("./wrapper-helpers");
60
58
  const SERVICE_NAME = 'ai-support-agent.service';
61
59
  const SERVICE_PREFIX = 'ai-support-agent';
62
60
  function getSystemdUserDir() {
@@ -71,14 +69,6 @@ function getLogDir() {
71
69
  function sanitize(s) {
72
70
  return s.toLowerCase().replace(/[^a-z0-9-]/g, '-');
73
71
  }
74
- /**
75
- * POSIX shell single-quote a value so it can be safely interpolated into a
76
- * bash script. Wraps the value in single quotes and escapes any embedded
77
- * single quote as `'\''`. The result is always exactly one shell argument.
78
- */
79
- function shellQuote(value) {
80
- return `'${value.replace(/'/g, `'\\''`)}'`;
81
- }
82
72
  /**
83
73
  * Write a file with content and enforce mode. `fs.writeFileSync({ mode })`
84
74
  * only applies the mode when the file is *created*; overwriting an existing
@@ -91,48 +81,6 @@ function writeFileEnsuringMode(filePath, content, mode) {
91
81
  fs.writeFileSync(filePath, content, { mode });
92
82
  fs.chmodSync(filePath, mode);
93
83
  }
94
- /**
95
- * Reject projectCodes whose characters would break
96
- * `AI_SUPPORT_AGENT_PROJECT_DIR_MAP` parsing.
97
- *
98
- * The env value uses `;` as entry separator and `=` as key/value separator;
99
- * a projectCode containing either would silently truncate the map and let
100
- * `resolveProjectDir()` fall back to the default template, silently
101
- * re-introducing the doubly-nested layout this PR is trying to prevent.
102
- * Allow `[A-Za-z0-9_-]` only — matching the configured naming convention
103
- * (UPPER_SNAKE_CASE for project, lower_snake_case for tenant).
104
- */
105
- function assertProjectCodeIsSafe(projectCode) {
106
- if (!/^[A-Za-z0-9_-]+$/.test(projectCode)) {
107
- throw new Error((0, i18n_1.t)('service.invalidProjectCode', { projectCode }));
108
- }
109
- }
110
- /**
111
- * Validate a user-supplied project.projectDir for use as a bind mount in
112
- * the generated wrapper script.
113
- *
114
- * Returns the original value when the path is acceptable, or `undefined`
115
- * when it should be dropped (and the wrapper should fall back to the
116
- * default per-project dir). Emits a warning log so the user is aware that
117
- * their configured projectDir was ignored.
118
- *
119
- * Rejects: empty string, non-string, non-existent paths, paths under
120
- * BLOCKED_PATH_PREFIXES / getSensitiveHomePaths (e.g. `/etc`, `~/.ssh`).
121
- */
122
- function validateProjectDirForMount(projectDir) {
123
- if (!projectDir)
124
- return undefined;
125
- if (!fs.existsSync(projectDir)) {
126
- logger_1.logger.warn((0, i18n_1.t)('service.projectDirMissing', { path: projectDir }));
127
- return undefined;
128
- }
129
- const blockedError = (0, security_1.validateBindMountPathSync)(projectDir);
130
- if (blockedError) {
131
- logger_1.logger.warn((0, i18n_1.t)('service.projectDirBlocked', { path: projectDir, message: blockedError }));
132
- return undefined;
133
- }
134
- return projectDir;
135
- }
136
84
  /**
137
85
  * Escape a value for use inside a systemd unit (ExecStart, Environment, etc.).
138
86
  * Per `man 5 systemd.service`, `man 5 systemd.exec` and `man 5 systemd.unit`:
@@ -286,18 +234,18 @@ function generateWrapperScript(opts) {
286
234
  // into a generated bash script. Shell-quote every value to defend against
287
235
  // whitespace, shell metacharacters (`$`, backticks, `"`), and outright
288
236
  // injection from a malicious or malformed token / env var.
289
- const qProjectConfig = shellQuote(opts.projectConfigHostDir);
290
- const qContainerHome = shellQuote(containerHome);
291
- const qContainerConfigDir = shellQuote(containerConfigDir);
292
- const qToken = shellQuote(opts.token);
293
- const qApiUrl = shellQuote(containerApiUrl);
294
- const qImageName = shellQuote(opts.imageName);
295
- const qUpdateScriptPath = shellQuote(opts.updateScriptPath);
237
+ const qProjectConfig = (0, wrapper_helpers_1.shellQuote)(opts.projectConfigHostDir);
238
+ const qContainerHome = (0, wrapper_helpers_1.shellQuote)(containerHome);
239
+ const qContainerConfigDir = (0, wrapper_helpers_1.shellQuote)(containerConfigDir);
240
+ const qToken = (0, wrapper_helpers_1.shellQuote)(opts.token);
241
+ const qApiUrl = (0, wrapper_helpers_1.shellQuote)(containerApiUrl);
242
+ const qImageName = (0, wrapper_helpers_1.shellQuote)(opts.imageName);
243
+ const qUpdateScriptPath = (0, wrapper_helpers_1.shellQuote)(opts.updateScriptPath);
296
244
  // tenant/project are sanitized to [a-z0-9-] for container name and the
297
245
  // --project value, so they're shell-safe; still quote for defense in depth.
298
246
  const containerName = `ai-${sanitize(opts.tenantCode)}-${sanitize(opts.projectCode)}`;
299
- const qContainerName = shellQuote(containerName);
300
- const qProjectArg = shellQuote(`${opts.tenantCode}/${opts.projectCode}`);
247
+ const qContainerName = (0, wrapper_helpers_1.shellQuote)(containerName);
248
+ const qProjectArg = (0, wrapper_helpers_1.shellQuote)(`${opts.tenantCode}/${opts.projectCode}`);
301
249
  // Project directory mount strategy:
302
250
  // - projectConfigHostDir (~/.ai-support-agent/projects/<t>/<p>/.ai-support-agent)
303
251
  // mounts to /home/node/.ai-support-agent inside the container. This is the
@@ -321,10 +269,10 @@ function generateWrapperScript(opts) {
321
269
  // `-v :/workspace/...:rw` which docker rejects.
322
270
  const hostProjectDir = opts.projectDir || path.dirname(opts.projectConfigHostDir);
323
271
  const mountLines = [
324
- ` -v ${shellQuote(`${homeDir}/.claude:${containerHome}/.claude:rw`)} \\`,
325
- ` -v ${shellQuote(`${opts.projectConfigHostDir}:${containerConfigDir}:rw`)} \\`,
326
- ` -v ${shellQuote(`${homeDir}/.claude.json:${containerHome}/.claude.json:rw`)} \\`,
327
- ` -v ${shellQuote(`${hostProjectDir}:${containerProjectDir}:rw`)} \\`,
272
+ ` -v ${(0, wrapper_helpers_1.shellQuote)(`${homeDir}/.claude:${containerHome}/.claude:rw`)} \\`,
273
+ ` -v ${(0, wrapper_helpers_1.shellQuote)(`${opts.projectConfigHostDir}:${containerConfigDir}:rw`)} \\`,
274
+ ` -v ${(0, wrapper_helpers_1.shellQuote)(`${homeDir}/.claude.json:${containerHome}/.claude.json:rw`)} \\`,
275
+ ` -v ${(0, wrapper_helpers_1.shellQuote)(`${hostProjectDir}:${containerProjectDir}:rw`)} \\`,
328
276
  ];
329
277
  const envLines = [
330
278
  ` -e AI_SUPPORT_AGENT_IN_DOCKER=1 \\`,
@@ -334,13 +282,13 @@ function generateWrapperScript(opts) {
334
282
  ` -e AI_SUPPORT_AGENT_API_URL=${qApiUrl} \\`,
335
283
  // Pin the in-container project dir so the agent does not re-derive it
336
284
  // from `${CONFIG_DIR}/projects/<t>/<p>` (which would double-nest).
337
- ` -e AI_SUPPORT_AGENT_PROJECT_DIR_MAP=${shellQuote(`${opts.projectCode}=${containerProjectDir}`)} \\`,
285
+ ` -e AI_SUPPORT_AGENT_PROJECT_DIR_MAP=${(0, wrapper_helpers_1.shellQuote)(`${opts.projectCode}=${containerProjectDir}`)} \\`,
338
286
  ];
339
287
  if (opts.anthropicApiKey) {
340
- envLines.push(` -e ANTHROPIC_API_KEY=${shellQuote(opts.anthropicApiKey)} \\`);
288
+ envLines.push(` -e ANTHROPIC_API_KEY=${(0, wrapper_helpers_1.shellQuote)(opts.anthropicApiKey)} \\`);
341
289
  }
342
290
  if (opts.claudeCodeOauthToken) {
343
- envLines.push(` -e CLAUDE_CODE_OAUTH_TOKEN=${shellQuote(opts.claudeCodeOauthToken)} \\`);
291
+ envLines.push(` -e CLAUDE_CODE_OAUTH_TOKEN=${(0, wrapper_helpers_1.shellQuote)(opts.claudeCodeOauthToken)} \\`);
344
292
  }
345
293
  const containerArgs = [
346
294
  'ai-support-agent', 'start', '--no-docker',
@@ -416,8 +364,8 @@ function generateUpdateScript() {
416
364
  : path.join(os.homedir(), '.ai-support-agent');
417
365
  // Quote interpolated paths so a HOME / config dir containing whitespace
418
366
  // or shell metacharacters doesn't word-split the generated script.
419
- const qSystemdDir = shellQuote(getSystemdUserDir());
420
- const qVersionFile = shellQuote(path.join(configDir, 'update-version.json'));
367
+ const qSystemdDir = (0, wrapper_helpers_1.shellQuote)(getSystemdUserDir());
368
+ const qVersionFile = (0, wrapper_helpers_1.shellQuote)(path.join(configDir, 'update-version.json'));
421
369
  return `#!/bin/bash
422
370
  set -uo pipefail
423
371
  shopt -s nullglob
@@ -519,8 +467,8 @@ exit 0
519
467
  function writeProjectServiceFiles(project, options = {}) {
520
468
  const { tenantCode, projectCode } = project;
521
469
  // Reject codes that would break the PROJECT_DIR_MAP env format.
522
- assertProjectCodeIsSafe(projectCode);
523
- assertProjectCodeIsSafe(tenantCode);
470
+ (0, wrapper_helpers_1.assertProjectCodeIsSafe)(projectCode);
471
+ (0, wrapper_helpers_1.assertProjectCodeIsSafe)(tenantCode);
524
472
  const projectKey = `${sanitize(tenantCode)}-${sanitize(projectCode)}`;
525
473
  const logDir = getLogDir();
526
474
  const projectLogDir = path.join(logDir, projectKey);
@@ -548,7 +496,7 @@ function writeProjectServiceFiles(project, options = {}) {
548
496
  // `-v <bad-path>:/workspace/projects/<code>:rw` unconditionally and
549
497
  // either crash on start (empty/missing) or expose host secrets to the
550
498
  // container (blocked prefix).
551
- const validatedProjectDir = validateProjectDirForMount(project.projectDir);
499
+ const validatedProjectDir = (0, wrapper_helpers_1.validateProjectDirForMount)(project.projectDir);
552
500
  const updateScriptPath = getUpdateScriptPath();
553
501
  const wrapperScriptPath = path.join(projectServiceDir, 'run.sh');
554
502
  const wrapperScript = generateWrapperScript({
@@ -651,37 +599,117 @@ class LinuxServiceStrategy {
651
599
  const updateScriptPath = getUpdateScriptPath();
652
600
  const updateScript = generateUpdateScript();
653
601
  writeFileEnsuringMode(updateScriptPath, updateScript, 0o700);
654
- const writtenUnits = [];
602
+ // Detect sanitize() collisions where two distinct valid codes
603
+ // (e.g. `MBC_01` and `MBC-01`) map to the same unit name and would
604
+ // silently overwrite each other. The helper also returns a `names` map
605
+ // (fqn → sanitized unit name) so we don't recompute via sanitize()
606
+ // multiple times per project — keeping the orphan-protection set and
607
+ // the per-project loop in sync with a single source of truth.
608
+ const { names: safeUnitNames, collisions } = (0, wrapper_helpers_1.detectInstallCollisions)(projects, getProjectUnitName);
609
+ // Pre-compute the expected unit names from the INPUT config (before any
610
+ // validation), so a project whose install fails this run is NOT treated
611
+ // as an orphan and accidentally disabled / unlinked. Failure modes:
612
+ // - invalid projectCode (rejected by assertProjectCodeIsSafe)
613
+ // - filesystem error during write
614
+ // For both, the previously-installed unit on disk should stay in place.
615
+ // We include INVALID codes too (via getProjectUnitName, which sanitize()
616
+ // tolerates) so a typo'd entry's prior unit is still protected.
655
617
  const expectedUnitNames = new Set();
656
618
  for (const project of projects) {
657
- const unitPath = writeProjectServiceFiles(project, { verbose: options.verbose });
658
- const unitName = getProjectUnitName(project.tenantCode, project.projectCode);
659
- expectedUnitNames.add(unitName);
660
- writtenUnits.push({
661
- projectCode: project.projectCode,
662
- unitPath,
663
- unitFile: `${unitName}.service`,
664
- });
619
+ const fqn = `${project.tenantCode}/${project.projectCode}`;
620
+ expectedUnitNames.add(safeUnitNames.get(fqn) ?? getProjectUnitName(project.tenantCode, project.projectCode));
665
621
  }
666
- // Remove orphaned per-project units for projects that are no longer in
667
- // config. Without this, `service start` / `status` would keep iterating
668
- // over stale units with outdated tokens because getAllProjectUnits()
669
- // walks the filesystem, not the config.
670
- for (const { unitName, unitPath } of getAllProjectUnits()) {
671
- if (expectedUnitNames.has(unitName))
622
+ // Track which colliding unit-names we've already reported so the same
623
+ // duplicate/collision error doesn't log N times for an N-times-listed
624
+ // entry.
625
+ const reportedCollisionNames = new Set();
626
+ const writtenUnits = [];
627
+ let failedCount = 0;
628
+ for (const project of projects) {
629
+ const fqn = `${project.tenantCode}/${project.projectCode}`;
630
+ // Refuse to install when this project shares its sanitized unit name
631
+ // with another configured project — we can't tell which one should
632
+ // win, and last-write would silently lose the first.
633
+ const collision = collisions.get(fqn);
634
+ if (collision) {
635
+ // Pick the more actionable message: literal duplicates ask the
636
+ // user to "remove the duplicate row"; sanitize-collisions ask
637
+ // them to "rename one of the projectCodes". A single config can
638
+ // exhibit BOTH at once (the duplicate row AND a sibling that
639
+ // collides); when that happens we want both hints to fire — so
640
+ // dedup is per (unit-name, messageKey) tuple, not just unit-name.
641
+ // Otherwise the row-order of config would silently decide which
642
+ // hint the user sees.
643
+ const messageKey = collision.isDuplicate
644
+ ? 'service.projectDuplicateEntry'
645
+ : 'service.projectUnitNameCollision';
646
+ const dedupKey = `${collision.name}\x00${messageKey}`;
647
+ if (!reportedCollisionNames.has(dedupKey)) {
648
+ logger_1.logger.error((0, i18n_1.t)(messageKey, {
649
+ projectCode: project.projectCode,
650
+ unitName: collision.name,
651
+ others: collision.others.join(', '),
652
+ }));
653
+ reportedCollisionNames.add(dedupKey);
654
+ }
655
+ failedCount += 1;
672
656
  continue;
673
- const orphanUnitFile = `${unitName}.service`;
674
- try {
675
- (0, child_process_1.execSync)(`systemctl --user disable --now "${orphanUnitFile}"`, { stdio: 'pipe' });
676
657
  }
677
- catch { /* not loaded ignore */ }
658
+ // Per-project failures (invalid projectCode, fs errors etc.) must not
659
+ // abort the entire install — log the error and continue so the
660
+ // remaining valid projects still get their wrappers written and
661
+ // enabled. Otherwise one stale entry in config could silently break
662
+ // every other project.
678
663
  try {
679
- if (fs.existsSync(unitPath))
680
- fs.unlinkSync(unitPath);
664
+ const unitPath = writeProjectServiceFiles(project, { verbose: options.verbose });
665
+ // safeUnitNames is the single source of truth for valid codes;
666
+ // fall back to recomputation only on the impossible-by-contract
667
+ // path where safeUnitNames is missing the fqn (defensive — should
668
+ // not happen because writeProjectServiceFiles asserts the codes
669
+ // first).
670
+ const unitName = safeUnitNames.get(fqn)
671
+ ?? getProjectUnitName(project.tenantCode, project.projectCode);
672
+ writtenUnits.push({
673
+ projectCode: project.projectCode,
674
+ unitPath,
675
+ unitFile: `${unitName}.service`,
676
+ });
681
677
  }
682
678
  catch (error) {
683
679
  const message = error instanceof Error ? error.message : String(error);
684
- logger_1.logger.warn((0, i18n_1.t)('service.orphanUnitRemoveFailed', { unit: orphanUnitFile, message }));
680
+ logger_1.logger.error((0, i18n_1.t)('service.projectInstallFailed', { projectCode: project.projectCode, message }));
681
+ failedCount += 1;
682
+ }
683
+ }
684
+ const anyInstallFailed = failedCount > 0;
685
+ // Remove orphaned per-project units for projects that are no longer in
686
+ // config. Without this, `service start` / `status` would keep iterating
687
+ // over stale units with outdated tokens because getAllProjectUnits()
688
+ // walks the filesystem, not the config.
689
+ //
690
+ // SAFETY: when any project install failed this run, SKIP orphan cleanup
691
+ // entirely. A failed validation could otherwise destructively deregister
692
+ // a previously-running unit just because the user mistyped one entry in
693
+ // config — and worse, sanitize() collapses `;`/`_`/`.` all to `-`, so a
694
+ // typo'd projectCode can collide with a different project's unit name
695
+ // and remove THE WRONG unit.
696
+ if (!anyInstallFailed) {
697
+ for (const { unitName, unitPath } of getAllProjectUnits()) {
698
+ if (expectedUnitNames.has(unitName))
699
+ continue;
700
+ const orphanUnitFile = `${unitName}.service`;
701
+ try {
702
+ (0, child_process_1.execSync)(`systemctl --user disable --now "${orphanUnitFile}"`, { stdio: 'pipe' });
703
+ }
704
+ catch { /* not loaded — ignore */ }
705
+ try {
706
+ if (fs.existsSync(unitPath))
707
+ fs.unlinkSync(unitPath);
708
+ }
709
+ catch (error) {
710
+ const message = error instanceof Error ? error.message : String(error);
711
+ logger_1.logger.warn((0, i18n_1.t)('service.orphanUnitRemoveFailed', { unit: orphanUnitFile, message }));
712
+ }
685
713
  }
686
714
  }
687
715
  // Reload systemd so the new/updated units are recognised, then enable
@@ -708,9 +736,25 @@ class LinuxServiceStrategy {
708
736
  }
709
737
  logger_1.logger.success((0, i18n_1.t)('service.projectInstalled', { projectCode, path: unitPath }));
710
738
  }
711
- logger_1.logger.info((0, i18n_1.t)('service.loadHintMulti'));
712
- logger_1.logger.info((0, i18n_1.t)('service.logDir', { path: logDir }));
713
- logger_1.logger.info((0, i18n_1.t)('service.noLogRotation'));
739
+ // Hide the "now run `service start`" hint when nothing was installed —
740
+ // otherwise the user sees the hint to start services that don't exist,
741
+ // followed by the failure summary at the very end.
742
+ if (writtenUnits.length > 0) {
743
+ logger_1.logger.info((0, i18n_1.t)('service.loadHintMulti'));
744
+ logger_1.logger.info((0, i18n_1.t)('service.logDir', { path: logDir }));
745
+ logger_1.logger.info((0, i18n_1.t)('service.noLogRotation'));
746
+ }
747
+ // Surface a summary line so scripts wrapping `service install` and
748
+ // operators scanning a long log can tell that SOME project was refused.
749
+ // Include counts (failed / total / succeeded) so the severity is
750
+ // immediately legible without grepping per-line errors.
751
+ if (anyInstallFailed) {
752
+ logger_1.logger.warn((0, i18n_1.t)('service.partialInstallSummary', {
753
+ failed: String(failedCount),
754
+ total: String(projects.length),
755
+ succeeded: String(writtenUnits.length),
756
+ }));
757
+ }
714
758
  }
715
759
  uninstall() {
716
760
  const projectUnits = getAllProjectUnits();
@@ -1 +1 @@
1
- {"version":3,"file":"linux-service.js","sourceRoot":"","sources":["../../../src/cli/service/linux-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linux-service.js","sourceRoot":"","sources":["../../../src/cli/service/linux-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { ProjectRegistration } from '../../types';
2
+ export { assertProjectCodeIsSafe, isProjectCodeSafe } from '../../security';
3
+ /**
4
+ * POSIX shell single-quote a value so it can be safely interpolated into a
5
+ * bash script. Wraps the value in single quotes and escapes any embedded
6
+ * single quote as `'\''`. The result is always exactly one shell argument.
7
+ */
8
+ export declare function shellQuote(value: string): string;
9
+ /**
10
+ * Validate a user-supplied `project.projectDir` for use as a bind mount.
11
+ *
12
+ * Returns the original value when the path is acceptable, or `undefined`
13
+ * when it should be dropped (and the wrapper / supervisor should fall back
14
+ * to the default per-project dir). Emits a warning so the user is aware
15
+ * that their configured projectDir was ignored.
16
+ *
17
+ * Rejects: empty string, non-existent paths, and paths under
18
+ * `BLOCKED_PATH_PREFIXES` / `getSensitiveHomePaths` (e.g. `/etc`,
19
+ * `~/.ssh`). All three reasons end up at the same fallback to keep the
20
+ * caller code simple.
21
+ */
22
+ export declare function validateProjectDirForMount(projectDir: string | undefined): string | undefined;
23
+ export interface CollisionInfo {
24
+ /** The conflicting unit name / plist label (already sanitized). */
25
+ name: string;
26
+ /** Other configured `<tenantCode>/<projectCode>` tuples mapping to the same name. */
27
+ others: string[];
28
+ /**
29
+ * True when this FQN appears more than once in config (literal
30
+ * duplicate entry). The caller should surface a different message in
31
+ * that case ("remove the duplicate row" vs. "rename one of the codes").
32
+ * `isDuplicate` and `others.length > 0` can BOTH be true when a config
33
+ * contains both a literal duplicate AND a sanitize-collision sibling
34
+ * (e.g. `[mbc/MBC_01, mbc/MBC_01, mbc/MBC-01]`).
35
+ */
36
+ isDuplicate: boolean;
37
+ }
38
+ export interface CollisionDetectionResult {
39
+ /**
40
+ * FQN (`<tenantCode>/<projectCode>`) → sanitized unit-name / plist-label
41
+ * for every project that passed `isProjectCodeSafe`. Callers that need
42
+ * the sanitized name later (orphan-protection sets, unit-file paths)
43
+ * can read it from here instead of recomputing via `nameFn`.
44
+ */
45
+ names: Map<string, string>;
46
+ /**
47
+ * FQN → CollisionInfo for projects that conflict with another
48
+ * configured entry (sanitize-collision and/or literal duplicate).
49
+ * Projects without conflict are absent from this map.
50
+ */
51
+ collisions: Map<string, CollisionInfo>;
52
+ }
53
+ /**
54
+ * Detect sanitize() collisions across configured projects.
55
+ *
56
+ * `nameFn` derives the per-platform unit-name / plist-label from
57
+ * (tenantCode, projectCode). Codes that fail `isProjectCodeSafe` are
58
+ * skipped from collision counting (they're refused independently by
59
+ * `writeProjectServiceFiles`, and including them here would falsely
60
+ * collide with a valid sibling like `MBC;01` + `MBC-01`).
61
+ *
62
+ * The returned `names` map covers ALL projects that passed validation
63
+ * (single source of truth — callers should not recompute via `nameFn`
64
+ * again). The `collisions` map only includes FQNs with a conflict.
65
+ *
66
+ * Shared between linux-service and darwin-service to keep the two
67
+ * platforms from drifting on collision semantics.
68
+ */
69
+ export declare function detectInstallCollisions(projects: ProjectRegistration[], nameFn: (tenantCode: string, projectCode: string) => string): CollisionDetectionResult;
70
+ //# sourceMappingURL=wrapper-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper-helpers.d.ts","sourceRoot":"","sources":["../../../src/cli/service/wrapper-helpers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAMtD,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAE3E;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAY7F;AAED,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,qFAAqF;IACrF,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB;;;;;;;OAOG;IACH,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B;;;;OAIG;IACH,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CACvC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,MAAM,GAC1D,wBAAwB,CAgC1B"}