baxian 2.0.5 → 2.0.7

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 (188) hide show
  1. package/README.md +5 -5
  2. package/README.zh-CN.md +5 -5
  3. package/dist/agent/bootstrap-poller.d.ts +2 -2
  4. package/dist/agent/bootstrap-poller.d.ts.map +1 -1
  5. package/dist/agent/bootstrap-poller.js.map +1 -1
  6. package/dist/agent/bootstrap.d.ts +1 -1
  7. package/dist/agent/bootstrap.d.ts.map +1 -1
  8. package/dist/agent/bootstrap.js +24 -48
  9. package/dist/agent/bootstrap.js.map +1 -1
  10. package/dist/agent/manager.d.ts +9 -35
  11. package/dist/agent/manager.d.ts.map +1 -1
  12. package/dist/agent/manager.js +86 -335
  13. package/dist/agent/manager.js.map +1 -1
  14. package/dist/agent/net-exec.d.ts +0 -1
  15. package/dist/agent/net-exec.d.ts.map +1 -1
  16. package/dist/agent/net-exec.js +0 -1
  17. package/dist/agent/net-exec.js.map +1 -1
  18. package/dist/agent/pane-streamer-manager.d.ts.map +1 -1
  19. package/dist/agent/pane-streamer-manager.js +1 -3
  20. package/dist/agent/pane-streamer-manager.js.map +1 -1
  21. package/dist/agent/preflight.d.ts +1 -20
  22. package/dist/agent/preflight.d.ts.map +1 -1
  23. package/dist/agent/preflight.js +39 -122
  24. package/dist/agent/preflight.js.map +1 -1
  25. package/dist/agent/prompt.d.ts +6 -16
  26. package/dist/agent/prompt.d.ts.map +1 -1
  27. package/dist/agent/prompt.js +128 -79
  28. package/dist/agent/prompt.js.map +1 -1
  29. package/dist/agent/repo-store.d.ts +1 -5
  30. package/dist/agent/repo-store.d.ts.map +1 -1
  31. package/dist/agent/repo-store.js +8 -33
  32. package/dist/agent/repo-store.js.map +1 -1
  33. package/dist/agent/runner.d.ts +1 -1
  34. package/dist/agent/runner.d.ts.map +1 -1
  35. package/dist/agent/runner.js +1 -3
  36. package/dist/agent/runner.js.map +1 -1
  37. package/dist/api/config.d.ts +1 -2
  38. package/dist/api/config.d.ts.map +1 -1
  39. package/dist/api/config.js +5 -22
  40. package/dist/api/config.js.map +1 -1
  41. package/dist/api/platform-guard.d.ts.map +1 -1
  42. package/dist/api/platform-guard.js +5 -15
  43. package/dist/api/platform-guard.js.map +1 -1
  44. package/dist/api/projects.d.ts.map +1 -1
  45. package/dist/api/projects.js +18 -25
  46. package/dist/api/projects.js.map +1 -1
  47. package/dist/api/tasks.js +2 -2
  48. package/dist/api/tasks.js.map +1 -1
  49. package/dist/cli.js +3 -3
  50. package/dist/cli.js.map +1 -1
  51. package/dist/config/backup.d.ts +1 -3
  52. package/dist/config/backup.d.ts.map +1 -1
  53. package/dist/config/backup.js +28 -82
  54. package/dist/config/backup.js.map +1 -1
  55. package/dist/config/hot-reload.d.ts +3 -2
  56. package/dist/config/hot-reload.d.ts.map +1 -1
  57. package/dist/config/hot-reload.js +6 -16
  58. package/dist/config/hot-reload.js.map +1 -1
  59. package/dist/config/loader.d.ts +3 -10
  60. package/dist/config/loader.d.ts.map +1 -1
  61. package/dist/config/loader.js +53 -67
  62. package/dist/config/loader.js.map +1 -1
  63. package/dist/config/validator.d.ts +2 -8
  64. package/dist/config/validator.d.ts.map +1 -1
  65. package/dist/config/validator.js +42 -120
  66. package/dist/config/validator.js.map +1 -1
  67. package/dist/index.d.ts +1 -1
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +15 -39
  70. package/dist/index.js.map +1 -1
  71. package/dist/platform/driver-host.d.ts +4 -3
  72. package/dist/platform/driver-host.d.ts.map +1 -1
  73. package/dist/platform/driver-host.js +12 -11
  74. package/dist/platform/driver-host.js.map +1 -1
  75. package/dist/platform/feedback.d.ts +5 -6
  76. package/dist/platform/feedback.d.ts.map +1 -1
  77. package/dist/platform/feedback.js +4 -7
  78. package/dist/platform/feedback.js.map +1 -1
  79. package/dist/platform/github-driver.d.ts +36 -0
  80. package/dist/platform/github-driver.d.ts.map +1 -0
  81. package/dist/platform/github-driver.js +374 -0
  82. package/dist/platform/github-driver.js.map +1 -0
  83. package/dist/platform/markers.d.ts +1 -4
  84. package/dist/platform/markers.d.ts.map +1 -1
  85. package/dist/platform/markers.js +0 -8
  86. package/dist/platform/markers.js.map +1 -1
  87. package/dist/platform/platform-poller.d.ts +2 -17
  88. package/dist/platform/platform-poller.d.ts.map +1 -1
  89. package/dist/platform/platform-poller.js +9 -15
  90. package/dist/platform/platform-poller.js.map +1 -1
  91. package/dist/platform/response-parser.d.ts.map +1 -1
  92. package/dist/platform/response-parser.js +6 -63
  93. package/dist/platform/response-parser.js.map +1 -1
  94. package/dist/platform/review-timeline.d.ts +6 -8
  95. package/dist/platform/review-timeline.d.ts.map +1 -1
  96. package/dist/platform/review-timeline.js +4 -6
  97. package/dist/platform/review-timeline.js.map +1 -1
  98. package/dist/platform/row-schema.d.ts +1 -2
  99. package/dist/platform/row-schema.d.ts.map +1 -1
  100. package/dist/platform/row-schema.js +13 -1
  101. package/dist/platform/row-schema.js.map +1 -1
  102. package/dist/platform/startup.d.ts +6 -34
  103. package/dist/platform/startup.d.ts.map +1 -1
  104. package/dist/platform/startup.js +10 -109
  105. package/dist/platform/startup.js.map +1 -1
  106. package/dist/platform/types.d.ts +61 -54
  107. package/dist/platform/types.d.ts.map +1 -1
  108. package/dist/platform/types.js +38 -26
  109. package/dist/platform/types.js.map +1 -1
  110. package/dist/platform/verdict-engine.d.ts +1 -1
  111. package/dist/platform/verdict-engine.d.ts.map +1 -1
  112. package/dist/platform/verdict-engine.js +1 -1
  113. package/dist/platform/verdict-engine.js.map +1 -1
  114. package/dist/shared/constants.d.ts +2 -9
  115. package/dist/shared/constants.d.ts.map +1 -1
  116. package/dist/shared/constants.js +2 -20
  117. package/dist/shared/constants.js.map +1 -1
  118. package/dist/shared/git-url.d.ts +0 -14
  119. package/dist/shared/git-url.d.ts.map +1 -1
  120. package/dist/shared/git-url.js +4 -57
  121. package/dist/shared/git-url.js.map +1 -1
  122. package/dist/shared/types.d.ts +2 -10
  123. package/dist/shared/types.d.ts.map +1 -1
  124. package/dist/shared/types.js.map +1 -1
  125. package/dist/state/agent-store.js +0 -3
  126. package/dist/state/agent-store.js.map +1 -1
  127. package/dist/state/task-store.js +2 -2
  128. package/dist/state/task-store.js.map +1 -1
  129. package/dist/web/assets/index-KH_4rYrI.js +15 -0
  130. package/dist/web/index.html +1 -1
  131. package/package.json +1 -1
  132. package/dist/config/normalizer.d.ts +0 -2
  133. package/dist/config/normalizer.d.ts.map +0 -1
  134. package/dist/config/normalizer.js +0 -46
  135. package/dist/config/normalizer.js.map +0 -1
  136. package/dist/platform/command-renderer.d.ts +0 -29
  137. package/dist/platform/command-renderer.d.ts.map +0 -1
  138. package/dist/platform/command-renderer.js +0 -113
  139. package/dist/platform/command-renderer.js.map +0 -1
  140. package/dist/platform/driver-spec.d.ts +0 -7
  141. package/dist/platform/driver-spec.d.ts.map +0 -1
  142. package/dist/platform/driver-spec.js +0 -506
  143. package/dist/platform/driver-spec.js.map +0 -1
  144. package/dist/platform/field-mapper.d.ts +0 -7
  145. package/dist/platform/field-mapper.d.ts.map +0 -1
  146. package/dist/platform/field-mapper.js +0 -109
  147. package/dist/platform/field-mapper.js.map +0 -1
  148. package/dist/platform/git-driver.d.ts +0 -64
  149. package/dist/platform/git-driver.d.ts.map +0 -1
  150. package/dist/platform/git-driver.js +0 -230
  151. package/dist/platform/git-driver.js.map +0 -1
  152. package/dist/platform/manifest.d.ts +0 -11
  153. package/dist/platform/manifest.d.ts.map +0 -1
  154. package/dist/platform/manifest.js +0 -42
  155. package/dist/platform/manifest.js.map +0 -1
  156. package/dist/platform/plugin-registry.d.ts +0 -31
  157. package/dist/platform/plugin-registry.d.ts.map +0 -1
  158. package/dist/platform/plugin-registry.js +0 -239
  159. package/dist/platform/plugin-registry.js.map +0 -1
  160. package/dist/platform/plugin-roots.d.ts +0 -3
  161. package/dist/platform/plugin-roots.d.ts.map +0 -1
  162. package/dist/platform/plugin-roots.js +0 -11
  163. package/dist/platform/plugin-roots.js.map +0 -1
  164. package/dist/platform/plugins/github/baxian-plugin.json +0 -8
  165. package/dist/platform/plugins/github/driver.json +0 -153
  166. package/dist/platform/plugins/github/skills/baxian-cli-gh/SKILL.md +0 -115
  167. package/dist/platform/plugins/github/skills/baxian-cli-gh/agents/openai.yaml +0 -2
  168. package/dist/platform/preflight-exec.d.ts +0 -21
  169. package/dist/platform/preflight-exec.d.ts.map +0 -1
  170. package/dist/platform/preflight-exec.js +0 -53
  171. package/dist/platform/preflight-exec.js.map +0 -1
  172. package/dist/skill/registry.d.ts +0 -37
  173. package/dist/skill/registry.d.ts.map +0 -1
  174. package/dist/skill/registry.js +0 -234
  175. package/dist/skill/registry.js.map +0 -1
  176. package/dist/skills/baxian-greeting/SKILL.md +0 -15
  177. package/dist/skills/baxian-greeting/agents/openai.yaml +0 -2
  178. package/dist/skills/baxian-pr-feedback/SKILL.md +0 -41
  179. package/dist/skills/baxian-pr-feedback/agents/openai.yaml +0 -2
  180. package/dist/skills/baxian-pr-recheck/SKILL.md +0 -27
  181. package/dist/skills/baxian-pr-recheck/agents/openai.yaml +0 -2
  182. package/dist/skills/baxian-pr-review/SKILL.md +0 -33
  183. package/dist/skills/baxian-pr-review/agents/openai.yaml +0 -2
  184. package/dist/skills/baxian-signals/SKILL.md +0 -86
  185. package/dist/skills/baxian-signals/agents/openai.yaml +0 -2
  186. package/dist/skills/baxian-task-check/SKILL.md +0 -52
  187. package/dist/skills/baxian-task-check/agents/openai.yaml +0 -2
  188. package/dist/web/assets/index-CzVzThuT.js +0 -15
@@ -1,106 +1,52 @@
1
- import { copyFile, mkdir, readdir, stat, unlink } from 'node:fs/promises';
2
- import { constants as fsConstants } from 'node:fs';
3
- import { basename, join } from 'node:path';
1
+ import { constants as fsConstants, copyFile, readdir, unlink } from 'node:fs/promises';
2
+ import { basename, dirname, join } from 'node:path';
4
3
  import { MAX_CONFIG_BACKUPS } from '../shared/index.js';
5
4
  import { assertInsideManagedDir } from '../state/managed-path.js';
6
- // Backups live under the state dir, not beside the config file, so rotation deletion always targets baxian-managed ground in both deployment shapes (project-local baxian.json and ~/.baxian/config.json).
7
- export function configBackupDir(stateDir) {
8
- return join(stateDir, 'config-backups');
9
- }
10
- export async function backupConfig(configPath, stateDir) {
11
- try {
12
- await stat(configPath);
13
- }
14
- catch {
15
- return null;
16
- }
5
+ const BACKUP_TIMESTAMP_PATTERN = /^\d{4}(?:-\d{2}){5}-\d{3}$/;
6
+ export async function backupConfig(configPath) {
17
7
  const now = new Date();
18
8
  const timestamp = [
19
- String(now.getFullYear()),
9
+ String(now.getFullYear()).padStart(4, '0'),
10
+ '-',
20
11
  String(now.getMonth() + 1).padStart(2, '0'),
12
+ '-',
21
13
  String(now.getDate()).padStart(2, '0'),
22
14
  '-',
23
15
  String(now.getHours()).padStart(2, '0'),
16
+ '-',
24
17
  String(now.getMinutes()).padStart(2, '0'),
18
+ '-',
25
19
  String(now.getSeconds()).padStart(2, '0'),
20
+ '-',
21
+ String(now.getMilliseconds()).padStart(3, '0'),
26
22
  ].join('');
27
- const dir = configBackupDir(stateDir);
28
- await mkdir(dir, { recursive: true });
29
- // Exclusive create with monotonic suffixes: reusing a rotated-away name would make the newest backup sort as the oldest and be deleted by its own rotation.
30
- const stampedBase = `${basename(configPath)}.${timestamp}`;
31
- let n = await nextSuffix(dir, stampedBase);
32
- let backupPath = suffixedPath(dir, stampedBase, n);
33
- for (let attempts = 0;; attempts++) {
34
- try {
35
- await copyFile(configPath, backupPath, fsConstants.COPYFILE_EXCL);
36
- break;
37
- }
38
- catch (err) {
39
- if (err?.code !== 'EEXIST' || attempts >= 50)
40
- throw err;
41
- n = Math.max(n + 1, await nextSuffix(dir, stampedBase));
42
- backupPath = suffixedPath(dir, stampedBase, n);
43
- }
44
- }
45
- await cleanupOldBackups(configPath, stateDir);
46
- return backupPath;
47
- }
48
- function suffixedPath(dir, stampedBase, n) {
49
- return join(dir, n === 0 ? stampedBase : `${stampedBase}.${n}`);
50
- }
51
- async function nextSuffix(dir, stampedBase) {
52
- let files;
23
+ const dir = dirname(configPath);
24
+ const backupPath = join(dir, `${basename(configPath)}.${timestamp}`);
53
25
  try {
54
- files = await readdir(dir);
26
+ await copyFile(configPath, backupPath, fsConstants.COPYFILE_EXCL);
55
27
  }
56
28
  catch (err) {
57
- if (err?.code === 'ENOENT')
58
- return 0;
29
+ const code = err?.code;
30
+ if (code === 'ENOENT' || code === 'EEXIST')
31
+ return null;
59
32
  throw err;
60
33
  }
61
- let next = 0;
62
- for (const f of files) {
63
- const taken = suffixOf(f, stampedBase);
64
- if (taken !== null && taken >= next)
65
- next = taken + 1;
66
- }
67
- return next;
68
- }
69
- function suffixOf(file, stampedBase) {
70
- if (file === stampedBase)
71
- return 0;
72
- if (!file.startsWith(`${stampedBase}.`))
73
- return null;
74
- const rest = file.slice(stampedBase.length + 1);
75
- return /^\d+$/.test(rest) ? Number(rest) : null;
34
+ await cleanupOldBackups(configPath);
35
+ return backupPath;
76
36
  }
77
- const BACKUP_PATTERN = /\.(\d{8}-\d{6})(?:\.(\d+))?$/;
78
- export async function cleanupOldBackups(configPath, stateDir) {
79
- const dir = configBackupDir(stateDir);
80
- const base = basename(configPath);
81
- let files;
82
- try {
83
- files = await readdir(dir);
84
- }
85
- catch (err) {
86
- if (err?.code === 'ENOENT')
87
- return;
88
- throw err;
89
- }
90
- const backups = files
91
- .flatMap((f) => {
92
- if (!f.startsWith(`${base}.`))
93
- return [];
94
- const m = BACKUP_PATTERN.exec(f);
95
- return m ? [{ file: f, stamp: m[1], seq: m[2] === undefined ? 0 : Number(m[2]) }] : [];
96
- })
97
- .sort((a, b) => (a.stamp !== b.stamp ? b.stamp.localeCompare(a.stamp) : b.seq - a.seq));
37
+ async function cleanupOldBackups(configPath) {
38
+ const dir = dirname(configPath);
39
+ const prefix = `${basename(configPath)}.`;
40
+ const backups = (await readdir(dir))
41
+ .filter(name => name.startsWith(prefix) && BACKUP_TIMESTAMP_PATTERN.test(name.slice(prefix.length)))
42
+ .sort()
43
+ .reverse();
98
44
  for (const old of backups.slice(MAX_CONFIG_BACKUPS)) {
99
45
  try {
100
- await unlink(assertInsideManagedDir(dir, join(dir, old.file)));
46
+ await unlink(assertInsideManagedDir(dir, join(dir, old)));
101
47
  }
102
48
  catch (err) {
103
- console.warn(`[backup] failed to remove old backup ${old.file}:`, err);
49
+ console.warn(`[backup] failed to remove old backup ${old}:`, err);
104
50
  }
105
51
  }
106
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/config/backup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/config/backup.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import type { AppContext } from '../app.js';
2
2
  import type { BaxianConfig, TaskState } from '../shared/index.js';
3
- import { type PlatformBindingMismatch, type PlatformEntryPlan } from '../platform/startup.js';
3
+ import { type PlatformBindingMismatch } from '../platform/startup.js';
4
+ import type { PlatformPollerEntryInit } from '../platform/platform-poller.js';
4
5
  export interface ConfigHotReloadPlan {
5
- platform?: PlatformEntryPlan;
6
+ platform?: PlatformPollerEntryInit[];
6
7
  bindingMismatches: Array<{
7
8
  task: TaskState;
8
9
  mismatch: PlatformBindingMismatch;
@@ -1 +1 @@
1
- {"version":3,"file":"hot-reload.d.ts","sourceRoot":"","sources":["../../src/config/hot-reload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,iBAAiB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,uBAAuB,CAAA;KAAE,CAAC,CAAC;CAClF;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAc9B;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
1
+ {"version":3,"file":"hot-reload.d.ts","sourceRoot":"","sources":["../../src/config/hot-reload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACrC,iBAAiB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,uBAAuB,CAAA;KAAE,CAAC,CAAC;CAClF;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAc9B;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,YAAY,EACvB,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAmBf"}
@@ -1,12 +1,12 @@
1
- import { planPlatformEntries, retainedPlatformProjectIds, } from '../platform/startup.js';
1
+ import { auditPlatformBindings, platformEntries, } from '../platform/startup.js';
2
2
  export async function prepareConfigHotReload(ctx, validated) {
3
3
  if (ctx.poller === undefined || ctx.platformEntryDeps === undefined) {
4
4
  return { bindingMismatches: [] };
5
5
  }
6
6
  const bindingMismatches = [];
7
- const retainedProjectIds = await retainedPlatformProjectIds(validated, () => ctx.agentManager.listActiveGitTasks(), (task, mismatch) => { bindingMismatches.push({ task, mismatch }); });
7
+ await auditPlatformBindings(validated, () => ctx.agentManager.listActiveGitTasks(), (task, mismatch) => { bindingMismatches.push({ task, mismatch }); });
8
8
  return {
9
- platform: planPlatformEntries(validated, { ...ctx.platformEntryDeps, retainedProjectIds }),
9
+ platform: platformEntries(validated, ctx.platformEntryDeps),
10
10
  bindingMismatches,
11
11
  };
12
12
  }
@@ -17,29 +17,19 @@ export async function applyConfigHotReload(ctx, validated, prepared) {
17
17
  ctx.dispatchReconciler?.replaceConfig(validated);
18
18
  if (ctx.poller === undefined)
19
19
  return;
20
- ctx.poller.reschedule(validated.server.githubPollIntervalMs);
20
+ ctx.poller.reschedule(validated.server.platformPollIntervalMs);
21
21
  if (prepared.platform === undefined)
22
22
  return;
23
- ctx.poller.reconcile(prepared.platform.entries);
23
+ ctx.poller.reconcile(prepared.platform);
24
24
  const activeInterventions = new Set();
25
25
  for (const { task, mismatch } of prepared.bindingMismatches) {
26
26
  activeInterventions.add(ctx.agentManager.platformBindingInterventionKey(task, mismatch));
27
27
  }
28
- for (const conflict of prepared.platform.conflicts) {
29
- activeInterventions.add(ctx.agentManager.configInterventionKey(conflict.projectId, {
30
- phase: 'repo-conflict', repoKey: conflict.repoKey, claimedBy: conflict.claimedBy,
31
- }));
32
- }
33
- ctx.agentManager.retainConfigInterventionKeys(activeInterventions);
28
+ ctx.agentManager.retainPlatformBindingInterventionKeys(activeInterventions);
34
29
  for (const { task, mismatch } of prepared.bindingMismatches) {
35
30
  await ctx.agentManager.emitPlatformBindingIntervention(task, mismatch).catch(err => {
36
31
  console.warn('[config] platform-binding intervention emit failed:', err);
37
32
  });
38
33
  }
39
- for (const conflict of prepared.platform.conflicts) {
40
- await ctx.agentManager.emitConfigIntervention(conflict.projectId, {
41
- phase: 'repo-conflict', repoKey: conflict.repoKey, claimedBy: conflict.claimedBy,
42
- }).catch(err => console.warn('[config] repo-conflict intervention emit failed:', err));
43
- }
44
34
  }
45
35
  //# sourceMappingURL=hot-reload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hot-reload.js","sourceRoot":"","sources":["../../src/config/hot-reload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hot-reload.js","sourceRoot":"","sources":["../../src/config/hot-reload.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,eAAe,GAEhB,MAAM,wBAAwB,CAAC;AAQhC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAe,EACf,SAAuB;IAEvB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpE,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IACnC,CAAC;IACD,MAAM,iBAAiB,GAA6C,EAAE,CAAC;IACvE,MAAM,qBAAqB,CACzB,SAAS,EACT,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAC3C,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;IACF,OAAO;QACL,QAAQ,EAAE,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,iBAAiB,CAAC;QAC3D,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAe,EACf,SAAuB,EACvB,QAA6B;IAE7B,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,GAAG,CAAC,kBAAkB,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO;IACrC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC/D,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO;IAC5C,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC5D,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,8BAA8B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,GAAG,CAAC,YAAY,CAAC,qCAAqC,CAAC,mBAAmB,CAAC,CAAC;IAC5E,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC5D,MAAM,GAAG,CAAC,YAAY,CAAC,+BAA+B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACjF,OAAO,CAAC,IAAI,CAAC,qDAAqD,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -1,19 +1,12 @@
1
1
  import { type BaxianConfig } from '../shared/index.js';
2
- import { type ValidationError, type ValidationWarning } from './validator.js';
2
+ import { type ValidationError } from './validator.js';
3
3
  export declare class ConfigValidationError extends Error {
4
4
  readonly errors: ValidationError[];
5
5
  constructor(errors: ValidationError[]);
6
6
  }
7
- export declare function prepareConfigWithWarnings(raw: unknown): {
8
- config: BaxianConfig;
9
- warnings: ValidationWarning[];
10
- };
11
7
  export declare function prepareConfig(raw: unknown): BaxianConfig;
12
8
  export declare function loadConfig(configPath: string): Promise<BaxianConfig>;
13
- export declare function userConfigPath(): string;
14
- export declare function userStateDir(): string;
15
- export declare function resolveConfigPath(explicit?: string): Promise<string | null>;
16
- export declare function resolveStateDir(configPath: string): string;
17
- export declare function createDefaultConfig(path: string): Promise<void>;
9
+ export declare function resolveHome(explicit?: string): string;
10
+ export declare function createDefaultConfig(path: string): Promise<boolean>;
18
11
  export declare function saveConfig(configPath: string, config: BaxianConfig): Promise<void>;
19
12
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8B,KAAK,YAAY,EAA0D,MAAM,oBAAoB,CAAC;AAmB3I,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAGxB,qBAAa,qBAAsB,SAAQ,KAAK;aAClB,MAAM,EAAE,eAAe,EAAE;gBAAzB,MAAM,EAAE,eAAe,EAAE;CAKtD;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,GACX;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAqCzD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAExD;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAO1E;AAaD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOjF;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAG1D;AASD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrE;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BxF"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8B,KAAK,YAAY,EAA0D,MAAM,oBAAoB,CAAC;AAc3I,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AAGxB,qBAAa,qBAAsB,SAAQ,KAAK;aAClB,MAAM,EAAE,eAAe,EAAE;gBAAzB,MAAM,EAAE,eAAe,EAAE;CAKtD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CA8CxD;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAG1E;AAED,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAOrD;AASD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYxE;AAED,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BxF"}
@@ -1,11 +1,10 @@
1
- import { readFile, writeFile, access, mkdir, stat, open, rename, rm, realpath } from 'node:fs/promises';
1
+ import { readFile, writeFile, mkdir, stat, open, rename, rm, realpath } from 'node:fs/promises';
2
2
  import { randomBytes } from 'node:crypto';
3
3
  import { dirname, resolve } from 'node:path';
4
4
  import { homedir } from 'node:os';
5
5
  import { isRecord } from '../shared/index.js';
6
- import { CONFIG_FILE, DEFAULT_BOOTSTRAP_RETRY_INTERVAL_MS, DEFAULT_DISPATCH_RECONCILE_INTERVAL_MS, DEFAULT_DISPATCH_BUSY_WAIT_BUDGET_MS, DEFAULT_DISPATCH_RECONCILE_MAX_ATTEMPTS, DEFAULT_GITHUB_POLL_INTERVAL_MS, DEFAULT_REVIEW_ROUNDS, DEFAULT_SERVER_HOST, DEFAULT_SERVER_PORT, DEFAULT_TMUX_PROBE_CONCURRENCY, DEFAULT_TMUX_PROBE_POLL_INTERVAL_MS, DEFAULT_TMUX_PROBE_TIMEOUT_MS, STATE_DIR, USER_CONFIG_REL, USER_STATE_REL, } from '../shared/index.js';
7
- import { normalizeConfig } from './normalizer.js';
8
- import { collectUnknownConfigWarnings, validateConfig, } from './validator.js';
6
+ import { DEFAULT_BOOTSTRAP_RETRY_INTERVAL_MS, DEFAULT_DISPATCH_RECONCILE_INTERVAL_MS, DEFAULT_DISPATCH_BUSY_WAIT_BUDGET_MS, DEFAULT_DISPATCH_RECONCILE_MAX_ATTEMPTS, DEFAULT_PLATFORM_POLL_INTERVAL_MS, DEFAULT_REVIEW_ROUNDS, DEFAULT_SERVER_HOST, DEFAULT_SERVER_PORT, DEFAULT_TMUX_PROBE_CONCURRENCY, DEFAULT_TMUX_PROBE_POLL_INTERVAL_MS, DEFAULT_TMUX_PROBE_TIMEOUT_MS, } from '../shared/index.js';
7
+ import { collectUnknownConfigErrors, validateConfig, } from './validator.js';
9
8
  import { backupConfig } from './backup.js';
10
9
  export class ConfigValidationError extends Error {
11
10
  errors;
@@ -16,15 +15,25 @@ export class ConfigValidationError extends Error {
16
15
  this.name = 'ConfigValidationError';
17
16
  }
18
17
  }
19
- export function prepareConfigWithWarnings(raw) {
18
+ export function prepareConfig(raw) {
20
19
  if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
21
20
  const got = Array.isArray(raw) ? 'array' : raw === null ? 'null' : typeof raw;
22
21
  throw new ConfigValidationError([
23
22
  { path: '', message: `config must be a JSON object (got ${got})` },
24
23
  ]);
25
24
  }
26
- const normalized = normalizeConfig(raw);
27
- const warnings = collectUnknownConfigWarnings(normalized);
25
+ const normalized = raw;
26
+ const unknownErrors = collectUnknownConfigErrors(normalized);
27
+ if (unknownErrors.length > 0)
28
+ throw new ConfigValidationError(unknownErrors);
29
+ for (const section of ['review', 'server']) {
30
+ const value = normalized[section];
31
+ if (value !== undefined && !isRecord(value)) {
32
+ throw new ConfigValidationError([
33
+ { path: section, message: `${section} must be an object` },
34
+ ]);
35
+ }
36
+ }
28
37
  if ('project' in normalized && normalized.project !== undefined && !Array.isArray(normalized.project)) {
29
38
  throw new ConfigValidationError([
30
39
  { path: 'project', message: 'project must be an array' },
@@ -50,52 +59,20 @@ export function prepareConfigWithWarnings(raw) {
50
59
  if (errors.length > 0) {
51
60
  throw new ConfigValidationError(errors);
52
61
  }
53
- return { config, warnings };
54
- }
55
- export function prepareConfig(raw) {
56
- return prepareConfigWithWarnings(raw).config;
62
+ return config;
57
63
  }
58
64
  export async function loadConfig(configPath) {
59
65
  const raw = await readFile(configPath, 'utf-8');
60
- const result = prepareConfigWithWarnings(JSON.parse(raw));
61
- for (const warning of result.warnings) {
62
- console.warn(`[config] ${warning.path}: ${warning.message}`);
63
- }
64
- return result.config;
65
- }
66
- async function pathExists(path) {
67
- try {
68
- await access(path);
69
- return true;
70
- }
71
- catch (err) {
72
- const code = err.code;
73
- if (code === 'ENOENT' || code === 'ENOTDIR')
74
- return false;
75
- throw err;
76
- }
66
+ return prepareConfig(JSON.parse(raw));
77
67
  }
78
- export function userConfigPath() {
79
- return resolve(homedir(), USER_CONFIG_REL);
80
- }
81
- export function userStateDir() {
82
- return resolve(homedir(), USER_STATE_REL);
83
- }
84
- export async function resolveConfigPath(explicit) {
85
- if (explicit)
68
+ export function resolveHome(explicit) {
69
+ if (explicit !== undefined) {
70
+ if (explicit.length === 0)
71
+ throw new Error('home directory must not be empty');
86
72
  return resolve(explicit);
87
- const cwdPath = resolve(process.cwd(), CONFIG_FILE);
88
- if (await pathExists(cwdPath))
89
- return cwdPath;
90
- const userPath = userConfigPath();
91
- if (await pathExists(userPath))
92
- return userPath;
93
- return null;
94
- }
95
- export function resolveStateDir(configPath) {
96
- if (resolve(dirname(configPath)) === userStateDir())
97
- return userStateDir();
98
- return resolve(dirname(configPath), STATE_DIR);
73
+ }
74
+ const envHome = process.env.BAXIAN_HOME;
75
+ return envHome ? resolve(envHome) : resolve(homedir(), '.baxian');
99
76
  }
100
77
  const DEFAULT_CONFIG_TEMPLATE = {
101
78
  review: { rounds: DEFAULT_REVIEW_ROUNDS },
@@ -105,10 +82,21 @@ const DEFAULT_CONFIG_TEMPLATE = {
105
82
  };
106
83
  export async function createDefaultConfig(path) {
107
84
  await mkdir(dirname(path), { recursive: true });
108
- await writeFile(path, JSON.stringify(DEFAULT_CONFIG_TEMPLATE, null, 2) + '\n');
85
+ try {
86
+ await writeFile(path, JSON.stringify(DEFAULT_CONFIG_TEMPLATE, null, 2) + '\n', {
87
+ flag: 'wx',
88
+ mode: 0o600,
89
+ });
90
+ return true;
91
+ }
92
+ catch (err) {
93
+ if (err?.code === 'EEXIST')
94
+ return false;
95
+ throw err;
96
+ }
109
97
  }
110
98
  export async function saveConfig(configPath, config) {
111
- await backupConfig(configPath, resolveStateDir(configPath));
99
+ await backupConfig(configPath);
112
100
  const physical = await realpathOrSelf(configPath);
113
101
  let mode = 0o600;
114
102
  try {
@@ -120,7 +108,7 @@ export async function saveConfig(configPath, config) {
120
108
  }
121
109
  const tmp = `${physical}.${process.pid}.${randomBytes(6).toString('hex')}.tmp`;
122
110
  const cleanupTmp = async () => {
123
- // Managed-dir exemption (the only one): the tmp must sit beside the target for rename() to stay atomic, and the target is the user's config path; pid+random naming keeps the blast radius to our own tmp.
111
+ // A symlinked config is updated through its target, so the tmp must stay beside that target for atomic rename.
124
112
  await rm(tmp, { force: true }).catch((rmErr) => {
125
113
  console.warn(`[config] failed to remove config temp ${tmp}:`, rmErr);
126
114
  });
@@ -180,9 +168,6 @@ function validateProjectShapes(project) {
180
168
  });
181
169
  return errors;
182
170
  }
183
- function isFiniteNumber(v) {
184
- return typeof v === 'number' && Number.isFinite(v);
185
- }
186
171
  function applyDefaults(normalized) {
187
172
  const rv = isRecord(normalized.review) ? normalized.review : {};
188
173
  const sv = isRecord(normalized.server) ? normalized.server : {};
@@ -199,22 +184,24 @@ function applyDefaults(normalized) {
199
184
  ? { language: normalized.language }
200
185
  : {}),
201
186
  review: {
202
- rounds: isFiniteNumber(rv.rounds) ? rv.rounds : DEFAULT_REVIEW_ROUNDS,
187
+ rounds: (rv.rounds === undefined ? DEFAULT_REVIEW_ROUNDS : rv.rounds),
203
188
  },
204
189
  server: {
205
- port: isFiniteNumber(sv.port) ? sv.port : DEFAULT_SERVER_PORT,
206
- host: typeof sv.host === 'string' ? sv.host : DEFAULT_SERVER_HOST,
207
- ...(typeof sv.token === 'string' && sv.token.trim().length > 0 ? { token: sv.token } : {}),
190
+ port: (sv.port === undefined ? DEFAULT_SERVER_PORT : sv.port),
191
+ host: (sv.host === undefined ? DEFAULT_SERVER_HOST : sv.host),
192
+ ...(sv.token === undefined ? {} : { token: sv.token }),
208
193
  ...(hasHttps ? { https: sv.https } : {}),
209
194
  ...(hasAllowedHosts ? { allowedHosts: sv.allowedHosts } : {}),
210
- githubPollIntervalMs: isFiniteNumber(sv.githubPollIntervalMs) ? sv.githubPollIntervalMs : DEFAULT_GITHUB_POLL_INTERVAL_MS,
211
- tmuxProbePollIntervalMs: isFiniteNumber(sv.tmuxProbePollIntervalMs) ? sv.tmuxProbePollIntervalMs : DEFAULT_TMUX_PROBE_POLL_INTERVAL_MS,
212
- tmuxProbeTimeoutMs: isFiniteNumber(sv.tmuxProbeTimeoutMs) ? sv.tmuxProbeTimeoutMs : DEFAULT_TMUX_PROBE_TIMEOUT_MS,
213
- tmuxProbeConcurrency: isFiniteNumber(sv.tmuxProbeConcurrency) ? sv.tmuxProbeConcurrency : DEFAULT_TMUX_PROBE_CONCURRENCY,
214
- bootstrapRetryIntervalMs: isFiniteNumber(sv.bootstrapRetryIntervalMs) ? sv.bootstrapRetryIntervalMs : DEFAULT_BOOTSTRAP_RETRY_INTERVAL_MS,
215
- dispatchReconcileIntervalMs: isFiniteNumber(sv.dispatchReconcileIntervalMs) ? sv.dispatchReconcileIntervalMs : DEFAULT_DISPATCH_RECONCILE_INTERVAL_MS,
216
- dispatchBusyWaitBudgetMs: isFiniteNumber(sv.dispatchBusyWaitBudgetMs) ? sv.dispatchBusyWaitBudgetMs : DEFAULT_DISPATCH_BUSY_WAIT_BUDGET_MS,
217
- dispatchReconcileMaxAttempts: isFiniteNumber(sv.dispatchReconcileMaxAttempts) ? sv.dispatchReconcileMaxAttempts : DEFAULT_DISPATCH_RECONCILE_MAX_ATTEMPTS,
195
+ platformPollIntervalMs: (sv.platformPollIntervalMs === undefined
196
+ ? DEFAULT_PLATFORM_POLL_INTERVAL_MS
197
+ : sv.platformPollIntervalMs),
198
+ tmuxProbePollIntervalMs: (sv.tmuxProbePollIntervalMs === undefined ? DEFAULT_TMUX_PROBE_POLL_INTERVAL_MS : sv.tmuxProbePollIntervalMs),
199
+ tmuxProbeTimeoutMs: (sv.tmuxProbeTimeoutMs === undefined ? DEFAULT_TMUX_PROBE_TIMEOUT_MS : sv.tmuxProbeTimeoutMs),
200
+ tmuxProbeConcurrency: (sv.tmuxProbeConcurrency === undefined ? DEFAULT_TMUX_PROBE_CONCURRENCY : sv.tmuxProbeConcurrency),
201
+ bootstrapRetryIntervalMs: (sv.bootstrapRetryIntervalMs === undefined ? DEFAULT_BOOTSTRAP_RETRY_INTERVAL_MS : sv.bootstrapRetryIntervalMs),
202
+ dispatchReconcileIntervalMs: (sv.dispatchReconcileIntervalMs === undefined ? DEFAULT_DISPATCH_RECONCILE_INTERVAL_MS : sv.dispatchReconcileIntervalMs),
203
+ dispatchBusyWaitBudgetMs: (sv.dispatchBusyWaitBudgetMs === undefined ? DEFAULT_DISPATCH_BUSY_WAIT_BUDGET_MS : sv.dispatchBusyWaitBudgetMs),
204
+ dispatchReconcileMaxAttempts: (sv.dispatchReconcileMaxAttempts === undefined ? DEFAULT_DISPATCH_RECONCILE_MAX_ATTEMPTS : sv.dispatchReconcileMaxAttempts),
218
205
  },
219
206
  host: hosts,
220
207
  project: projects.map(applyProjectDefaults),
@@ -228,7 +215,6 @@ function applyProjectDefaults(p) {
228
215
  ...(p.specApproval !== undefined
229
216
  ? { specApproval: p.specApproval }
230
217
  : {}),
231
- ...(p.gitCli !== undefined ? { gitCli: p.gitCli } : {}),
232
218
  agent: Array.isArray(p.agent)
233
219
  ? p.agent.map(team => team.map(applyAgentDefaults))
234
220
  : [],
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,8 @@
1
- import { type BaxianConfig, type ProjectConfig } from '../shared/index.js';
1
+ import { type BaxianConfig } from '../shared/index.js';
2
2
  export interface ValidationError {
3
3
  path: string;
4
4
  message: string;
5
5
  }
6
- export interface ValidationWarning {
7
- path: string;
8
- message: string;
9
- }
10
- export declare function collectUnknownConfigWarnings(config: Record<string, unknown>): ValidationWarning[];
6
+ export declare function collectUnknownConfigErrors(config: Record<string, unknown>): ValidationError[];
11
7
  export declare function validateConfig(config: BaxianConfig): ValidationError[];
12
- export declare function resolveProjectTool(project: ProjectConfig): string | undefined;
13
- export declare function projectNeedsPlatformEntry(_config: BaxianConfig, project: ProjectConfig): boolean;
14
8
  //# sourceMappingURL=validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,YAAY,EAAyE,KAAK,aAAa,EAC7G,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAqCD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,EAAE,CAuBjG;AASD,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,EAAE,CAqBtE;AAMD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAG7E;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAEhG"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAsCD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe,EAAE,CA+B7F;AAMD,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,EAAE,CAoBtE"}