@straiffi/archon 1.6.2 → 1.7.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 (126) hide show
  1. package/dist/client/assets/{GitHubActionsDialog-YYq8JstU.js → GitHubActionsDialog-B9_WJBOp.js} +1 -1
  2. package/dist/client/assets/TestsDialog-DKvbjH_M.js +4 -0
  3. package/dist/client/assets/TicketChangesModal-C8rFoKjY.js +1 -0
  4. package/dist/client/assets/{arc-CnuHRbeq.js → arc-D2Nn9xIj.js} +1 -1
  5. package/dist/client/assets/architecture-7EHR7CIX-C-4Cp4ml.js +1 -0
  6. package/dist/client/assets/{architectureDiagram-3BPJPVTR-GehFBNFz.js → architectureDiagram-3BPJPVTR-DXRSRLL9.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-GPEHLZMM-CTFXIE8q.js → blockDiagram-GPEHLZMM-D7EE6Dnv.js} +1 -1
  8. package/dist/client/assets/{c4Diagram-AAUBKEIU-BY9e8TiT.js → c4Diagram-AAUBKEIU-UhVzFafr.js} +1 -1
  9. package/dist/client/assets/channel-CNoEXkwa.js +1 -0
  10. package/dist/client/assets/{chunk-2J33WTMH-Ck8V3BxZ.js → chunk-2J33WTMH-obbfylVr.js} +1 -1
  11. package/dist/client/assets/{chunk-3OPIFGDE-DvZbg_ji.js → chunk-3OPIFGDE-DPVuS-uo.js} +1 -1
  12. package/dist/client/assets/{chunk-4BX2VUAB-_WBpCe0m.js → chunk-4BX2VUAB-CtLS8D71.js} +1 -1
  13. package/dist/client/assets/{chunk-4EGX6M5U-BBQHxMeA.js → chunk-4EGX6M5U-Btnm0QNe.js} +1 -1
  14. package/dist/client/assets/{chunk-55IACEB6-B-d-YzxI.js → chunk-55IACEB6-74CcJaub.js} +1 -1
  15. package/dist/client/assets/{chunk-5DO6E6H7-BA-oSVa-.js → chunk-5DO6E6H7-WLZ8L4ko.js} +1 -1
  16. package/dist/client/assets/{chunk-5ZQYHXKU-DZL6nSFA.js → chunk-5ZQYHXKU-Dsc03vy9.js} +1 -1
  17. package/dist/client/assets/{chunk-727SXJPM-DMy23TqS.js → chunk-727SXJPM-COE-iq_Z.js} +1 -1
  18. package/dist/client/assets/{chunk-AQP2D5EJ-Ch4juSfK.js → chunk-AQP2D5EJ-DnbAdr8m.js} +1 -1
  19. package/dist/client/assets/{chunk-BR22UD5L-prWX503j.js → chunk-BR22UD5L-Cou5beGe.js} +1 -1
  20. package/dist/client/assets/{chunk-BSJP7CBP-CNtf2uaW.js → chunk-BSJP7CBP-DJ57XcV5.js} +1 -1
  21. package/dist/client/assets/{chunk-CSCIHK7Q-BSL0qTfP.js → chunk-CSCIHK7Q-DbTzC_WS.js} +2 -2
  22. package/dist/client/assets/{chunk-FHYWG6QK-BQ8n0J0S.js → chunk-FHYWG6QK-Ba10e2kj.js} +1 -1
  23. package/dist/client/assets/{chunk-FMBD7UC4-CWQN4V4s.js → chunk-FMBD7UC4-CEo2wZMx.js} +1 -1
  24. package/dist/client/assets/{chunk-KSCS5N6A-C1zDfxY8.js → chunk-KSCS5N6A-xvviIayr.js} +1 -1
  25. package/dist/client/assets/{chunk-L5ZTLDWV-D8yXktZ8.js → chunk-L5ZTLDWV-DY4Q9Til.js} +1 -1
  26. package/dist/client/assets/{chunk-LZXEDZCA-CjmFVV-I.js → chunk-LZXEDZCA-Bbeq2DZs.js} +2 -2
  27. package/dist/client/assets/{chunk-MPE355IW-gHN8AuU_.js → chunk-MPE355IW-MqEt-J8G.js} +1 -1
  28. package/dist/client/assets/{chunk-MZUSXYTE-Clzaz1kK.js → chunk-MZUSXYTE-DdNi9lhx.js} +1 -1
  29. package/dist/client/assets/{chunk-N66VUXT2-CkkAOkdt.js → chunk-N66VUXT2-CjemTW4E.js} +1 -1
  30. package/dist/client/assets/{chunk-ND2GUHAM-Dc6gtC7r.js → chunk-ND2GUHAM-CylX1p3K.js} +1 -1
  31. package/dist/client/assets/{chunk-NZK2D7GU-CJMnwR03.js → chunk-NZK2D7GU-BTcALpQq.js} +1 -1
  32. package/dist/client/assets/{chunk-O5CBEL6O-BW2gf35w.js → chunk-O5CBEL6O-Be_5dk2_.js} +1 -1
  33. package/dist/client/assets/{chunk-PUPMXCY4-DAdQFv8j.js → chunk-PUPMXCY4-ZvwTw0To.js} +1 -1
  34. package/dist/client/assets/chunk-QZHKN3VN-LI_RZca2.js +1 -0
  35. package/dist/client/assets/{chunk-UIBZB4QT-BRR84OYN.js → chunk-UIBZB4QT-BTY9be9s.js} +1 -1
  36. package/dist/client/assets/{chunk-WCWK7LTN-CQU7Fs_W.js → chunk-WCWK7LTN-Db1n3n3-.js} +1 -1
  37. package/dist/client/assets/chunk-WU5MYG2G-DXPsSM4Q.js +1 -0
  38. package/dist/client/assets/{chunk-XPW4576I-DafcxlUi.js → chunk-XPW4576I-DObFPxjB.js} +1 -1
  39. package/dist/client/assets/classDiagram-4FO5ZUOK-BgmK8-LI.js +1 -0
  40. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Dj5LqBjo.js +1 -0
  41. package/dist/client/assets/{cose-bilkent-S5V4N54A-DhJHP9hr.js → cose-bilkent-S5V4N54A-MlOPiG6P.js} +1 -1
  42. package/dist/client/assets/{dagre-BM42HDAG-vmxXhZ0y.js → dagre-BM42HDAG-CABUW7xK.js} +1 -1
  43. package/dist/client/assets/{dagre-CdwzCXQr.js → dagre-BWNHuDdf.js} +1 -1
  44. package/dist/client/assets/{diagram-2AECGRRQ-Bf7MS2bc.js → diagram-2AECGRRQ-KvcNrpvf.js} +1 -1
  45. package/dist/client/assets/{diagram-5GNKFQAL-Br3zBMUu.js → diagram-5GNKFQAL-DQV6-I4e.js} +1 -1
  46. package/dist/client/assets/{diagram-KO2AKTUF-DTzQBils.js → diagram-KO2AKTUF-DYDk9roD.js} +1 -1
  47. package/dist/client/assets/{diagram-LMA3HP47-BT-zhfvW.js → diagram-LMA3HP47-Da-0u-HG.js} +1 -1
  48. package/dist/client/assets/{diagram-OG6HWLK6-BkJWuAdb.js → diagram-OG6HWLK6-CuD5eRBv.js} +1 -1
  49. package/dist/client/assets/{erDiagram-TEJ5UH35-DLuUFa06.js → erDiagram-TEJ5UH35-BL5dBE-b.js} +1 -1
  50. package/dist/client/assets/eventmodeling-FCH6USID-Dqb6QKoI.js +1 -0
  51. package/dist/client/assets/{flowDiagram-I6XJVG4X-DqxBy0Eu.js → flowDiagram-I6XJVG4X-Bke5cWs7.js} +1 -1
  52. package/dist/client/assets/{ganttDiagram-6RSMTGT7-lxV5wli4.js → ganttDiagram-6RSMTGT7-5OD-ayGn.js} +1 -1
  53. package/dist/client/assets/gitGraph-WXDBUCRP-DYEsqh93.js +1 -0
  54. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-iEzJEXy_.js → gitGraphDiagram-PVQCEYII-7Cf6FVfO.js} +1 -1
  55. package/dist/client/assets/index-D8EniXuq.css +2 -0
  56. package/dist/client/assets/index-DXuxAAzf.js +270 -0
  57. package/dist/client/assets/info-J43DQDTF-CfjXFZai.js +1 -0
  58. package/dist/client/assets/{infoDiagram-5YYISTIA-mjHIc-rc.js → infoDiagram-5YYISTIA-BchMN9V-.js} +1 -1
  59. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-C3mJymgB.js → ishikawaDiagram-YF4QCWOH-D6TchjQy.js} +1 -1
  60. package/dist/client/assets/{journeyDiagram-JHISSGLW-Bl7pH31i.js → journeyDiagram-JHISSGLW-CwEcoeX-.js} +1 -1
  61. package/dist/client/assets/{kanban-definition-UN3LZRKU-iL68fF8o.js → kanban-definition-UN3LZRKU-S2V9CLGR.js} +1 -1
  62. package/dist/client/assets/{line-BbGkhDvA.js → line-DRheChzQ.js} +1 -1
  63. package/dist/client/assets/{linear-DFIW-KnM.js → linear-DT4rSZvy.js} +1 -1
  64. package/dist/client/assets/{mermaid-parser.core-3NnYiOiR.js → mermaid-parser.core-CN13XjLe.js} +2 -2
  65. package/dist/client/assets/{mermaid.core-BdUaWj-Y.js → mermaid.core-JhdSpoF5.js} +3 -3
  66. package/dist/client/assets/{mindmap-definition-RKZ34NQL-sDh1lwIs.js → mindmap-definition-RKZ34NQL-657TKwRB.js} +1 -1
  67. package/dist/client/assets/{ordinal-C1FS1Sfe.js → ordinal-k--hYEme.js} +1 -1
  68. package/dist/client/assets/packet-YPE3B663-Dv0HkRHU.js +1 -0
  69. package/dist/client/assets/pie-LRSECV5Y-S5zPzZFN.js +1 -0
  70. package/dist/client/assets/{pieDiagram-4H26LBE5-CmkeWRGt.js → pieDiagram-4H26LBE5-DJ8eQ94X.js} +1 -1
  71. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CusAc0KA.js → quadrantDiagram-W4KKPZXB-GpYFqyb1.js} +1 -1
  72. package/dist/client/assets/radar-GUYGQ44K-B7psLv22.js +1 -0
  73. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DRjpIANs.js → requirementDiagram-4Y6WPE33-COZFWgq1.js} +1 -1
  74. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DNpufJOV.js → sankeyDiagram-5OEKKPKP-BdCHyfcQ.js} +1 -1
  75. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BD5zE-V4.js → sequenceDiagram-3UESZ5HK-DAh3Ogx0.js} +1 -1
  76. package/dist/client/assets/{stateDiagram-AJRCARHV-fCUNQluV.js → stateDiagram-AJRCARHV-Ck8Yie8_.js} +1 -1
  77. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-B6zibRqD.js +1 -0
  78. package/dist/client/assets/{timeline-definition-PNZ67QCA-C4u3WsSc.js → timeline-definition-PNZ67QCA-kYr9DNtP.js} +1 -1
  79. package/dist/client/assets/treeView-BLDUP644-B8H0kT67.js +1 -0
  80. package/dist/client/assets/treemap-LRROVOQU-DPLhFHnh.js +1 -0
  81. package/dist/client/assets/{vennDiagram-CIIHVFJN-HdgYgPYH.js → vennDiagram-CIIHVFJN-CC_SlRiC.js} +1 -1
  82. package/dist/client/assets/wardley-L42UT6IY-B5-Vb08V.js +1 -0
  83. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-mtIAqcj8.js → wardleyDiagram-YWT4CUSO-CZ17ccSN.js} +1 -1
  84. package/dist/client/assets/{xychartDiagram-2RQKCTM6-CekNHwM1.js → xychartDiagram-2RQKCTM6-Blqaj-ci.js} +1 -1
  85. package/dist/client/index.html +2 -2
  86. package/dist/server/index.js +139 -2
  87. package/dist/server/index.js.map +1 -1
  88. package/dist/server/lib/git.js +19 -3
  89. package/dist/server/lib/git.js.map +1 -1
  90. package/dist/server/lib/previewProxy.js +5 -0
  91. package/dist/server/lib/previewProxy.js.map +1 -1
  92. package/dist/server/lib/projectFiles.js +313 -0
  93. package/dist/server/lib/projectFiles.js.map +1 -0
  94. package/dist/server/workers/followUp.js +1 -0
  95. package/dist/server/workers/followUp.js.map +1 -1
  96. package/package.json +1 -1
  97. package/dist/client/assets/TestsDialog-BDV84HfF.js +0 -4
  98. package/dist/client/assets/architecture-7EHR7CIX-tSrokdFP.js +0 -1
  99. package/dist/client/assets/channel-BHDgEkkI.js +0 -1
  100. package/dist/client/assets/chunk-QZHKN3VN-biOr9EeQ.js +0 -1
  101. package/dist/client/assets/chunk-WU5MYG2G-6nbIEzjM.js +0 -1
  102. package/dist/client/assets/classDiagram-4FO5ZUOK-eaJS9esZ.js +0 -1
  103. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DjTlDKs4.js +0 -1
  104. package/dist/client/assets/eventmodeling-FCH6USID-DapHLQIh.js +0 -1
  105. package/dist/client/assets/gitGraph-WXDBUCRP-BTBN_hfb.js +0 -1
  106. package/dist/client/assets/index-B3KA0m7e.css +0 -2
  107. package/dist/client/assets/index-BnMFJ-iq.js +0 -265
  108. package/dist/client/assets/info-J43DQDTF-CgiMJYKF.js +0 -1
  109. package/dist/client/assets/packet-YPE3B663-Bnwqjena.js +0 -1
  110. package/dist/client/assets/pie-LRSECV5Y-Ctj0ef-4.js +0 -1
  111. package/dist/client/assets/radar-GUYGQ44K-DE0H_saz.js +0 -1
  112. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CaE9ItcI.js +0 -1
  113. package/dist/client/assets/treeView-BLDUP644-CSAZL2OH.js +0 -1
  114. package/dist/client/assets/treemap-LRROVOQU-tYm4XKfP.js +0 -1
  115. package/dist/client/assets/wardley-L42UT6IY-DdiEFppm.js +0 -1
  116. /package/dist/client/assets/{array-B57E4cSs.js → array-BNor45A1.js} +0 -0
  117. /package/dist/client/assets/{chunk-NNHCCRGN-DRSAMe5H.js → chunk-NNHCCRGN-CZB-V-Gv.js} +0 -0
  118. /package/dist/client/assets/{cytoscape.esm-CVYSm6AJ.js → cytoscape.esm-B2lJcMSI.js} +0 -0
  119. /package/dist/client/assets/{defaultLocale-6WHJ3B09.js → defaultLocale-DPzUsThw.js} +0 -0
  120. /package/dist/client/assets/{dist-By2zKKTF.js → dist-CERhmQhR.js} +0 -0
  121. /package/dist/client/assets/{graphlib-B0DVs0bw.js → graphlib-BHOW-eWz.js} +0 -0
  122. /package/dist/client/assets/{init-DiYCGS1R.js → init-C0L3woqb.js} +0 -0
  123. /package/dist/client/assets/{katex-bgJu_0Fy.js → katex-CpjQsUQe.js} +0 -0
  124. /package/dist/client/assets/{path-DL_QDy2X.js → path-sMK4d_s9.js} +0 -0
  125. /package/dist/client/assets/{rough.esm-Bbn_-PMU.js → rough.esm-BoTisKeL.js} +0 -0
  126. /package/dist/client/assets/{src-Bi_byJUe.js → src-BRjoYtUW.js} +0 -0
@@ -0,0 +1,313 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { createHash } from 'node:crypto';
3
+ import { closeSync, constants, existsSync, fstatSync, lstatSync, openSync, readSync, realpathSync, statSync } from 'node:fs';
4
+ import { isAbsolute, parse, relative, resolve, sep, win32 } from 'node:path';
5
+ import { getGitStatus } from './git.js';
6
+ const MANIFEST_CACHE_TTL_MS = 30_000;
7
+ const MANIFEST_CACHE_MAX_ENTRIES = 50;
8
+ const MANIFEST_ENTRY_LIMIT = 100_000;
9
+ const MAX_GIT_OUTPUT_BYTES = 512 * 1024 * 1024;
10
+ const MAX_CONTENT_BYTES = 1024 * 1024;
11
+ const BINARY_SAMPLE_BYTES = 8_192;
12
+ const manifestCache = new Map();
13
+ export class ProjectFileContentError extends Error {
14
+ status;
15
+ reason;
16
+ constructor(status, reason, message) {
17
+ super(message);
18
+ this.name = 'ProjectFileContentError';
19
+ this.status = status;
20
+ this.reason = reason;
21
+ }
22
+ }
23
+ export class ProjectFileTargetUnavailableError extends Error {
24
+ constructor() {
25
+ super('Workspace target is unavailable');
26
+ this.name = 'ProjectFileTargetUnavailableError';
27
+ }
28
+ }
29
+ const runGitPathList = (cwd, args) => {
30
+ return execFileSync('git', args, {
31
+ cwd,
32
+ encoding: 'utf8',
33
+ maxBuffer: MAX_GIT_OUTPUT_BYTES,
34
+ stdio: ['ignore', 'pipe', 'pipe'],
35
+ });
36
+ };
37
+ const parseNulPaths = (output) => {
38
+ const paths = output.split('\0');
39
+ if (paths.at(-1) === '') {
40
+ paths.pop();
41
+ }
42
+ return paths.filter(Boolean);
43
+ };
44
+ const isSafeGitPath = (path) => {
45
+ if (!path || path.includes('\0') || isAbsolute(path) || win32.isAbsolute(path) || parse(path).root !== '') {
46
+ return false;
47
+ }
48
+ return !path.split(/[\\/]/).some(segment => segment === '..');
49
+ };
50
+ const toManifestEntry = (path, status) => ({
51
+ path,
52
+ original_path: status?.original_path && isSafeGitPath(status.original_path) ? status.original_path : null,
53
+ status: status?.status ?? null,
54
+ staged: status?.staged ?? false,
55
+ unstaged: status?.unstaged ?? false,
56
+ conflicted: status?.conflicted ?? false,
57
+ });
58
+ const getManifestSignature = (target, statusSignature, entries, truncated) => {
59
+ const hash = createHash('sha256');
60
+ hash.update('workspace-files-v1\0');
61
+ hash.update(JSON.stringify(target));
62
+ hash.update('\0');
63
+ hash.update(statusSignature ?? '');
64
+ hash.update('\0');
65
+ hash.update(truncated ? '1' : '0');
66
+ for (const entry of entries) {
67
+ hash.update('\0');
68
+ hash.update(JSON.stringify(entry));
69
+ }
70
+ return `sha256:${hash.digest('hex')}`;
71
+ };
72
+ const pruneManifestCache = () => {
73
+ const now = Date.now();
74
+ for (const [key, value] of manifestCache) {
75
+ if (now - value.timestamp >= MANIFEST_CACHE_TTL_MS) {
76
+ manifestCache.delete(key);
77
+ }
78
+ }
79
+ while (manifestCache.size >= MANIFEST_CACHE_MAX_ENTRIES) {
80
+ const oldestKey = manifestCache.keys().next().value;
81
+ if (!oldestKey) {
82
+ break;
83
+ }
84
+ manifestCache.delete(oldestKey);
85
+ }
86
+ };
87
+ export const clearProjectFileManifestCache = () => {
88
+ manifestCache.clear();
89
+ };
90
+ const isWorkspaceAvailable = (cwd) => {
91
+ return existsSync(cwd);
92
+ };
93
+ const assertWorkspaceAvailable = (cwd) => {
94
+ if (!isWorkspaceAvailable(cwd)) {
95
+ throw new ProjectFileTargetUnavailableError();
96
+ }
97
+ };
98
+ export const getProjectFileManifest = (workspace, options = {}) => {
99
+ assertWorkspaceAvailable(workspace.cwd);
100
+ const cached = manifestCache.get(workspace.cacheKey);
101
+ if (!options.refresh && cached && Date.now() - cached.timestamp < MANIFEST_CACHE_TTL_MS) {
102
+ return cached.manifest;
103
+ }
104
+ let status;
105
+ let tracked;
106
+ let untracked;
107
+ try {
108
+ status = getGitStatus(workspace.cwd, workspace.branch, workspace.project);
109
+ tracked = parseNulPaths(runGitPathList(workspace.cwd, ['ls-files', '--cached', '-z']));
110
+ untracked = parseNulPaths(runGitPathList(workspace.cwd, ['ls-files', '--others', '--exclude-standard', '-z']));
111
+ }
112
+ catch (error) {
113
+ if (!isWorkspaceAvailable(workspace.cwd)) {
114
+ throw new ProjectFileTargetUnavailableError();
115
+ }
116
+ throw error;
117
+ }
118
+ const statuses = new Map(status.files
119
+ .filter(file => isSafeGitPath(file.path))
120
+ .map(file => [file.path, file]));
121
+ const paths = new Set();
122
+ for (const path of [...tracked, ...untracked, ...statuses.keys()]) {
123
+ if (isSafeGitPath(path)) {
124
+ paths.add(path);
125
+ }
126
+ }
127
+ for (const file of statuses.values()) {
128
+ if (file.status === 'renamed' && file.unstaged && file.original_path && isSafeGitPath(file.original_path)) {
129
+ paths.delete(file.original_path);
130
+ }
131
+ }
132
+ const sortedPaths = [...paths].sort((left, right) => left.localeCompare(right));
133
+ const truncated = sortedPaths.length > MANIFEST_ENTRY_LIMIT;
134
+ const entries = sortedPaths
135
+ .slice(0, MANIFEST_ENTRY_LIMIT)
136
+ .map(path => toManifestEntry(path, statuses.get(path) ?? null));
137
+ const manifest = {
138
+ target: workspace.target,
139
+ entries,
140
+ truncated,
141
+ workspace_signature: getManifestSignature(workspace.target, status.workspace_signature, entries, truncated),
142
+ };
143
+ pruneManifestCache();
144
+ manifestCache.set(workspace.cacheKey, { manifest, timestamp: Date.now() });
145
+ return manifest;
146
+ };
147
+ const contentError = (status, reason, message) => {
148
+ throw new ProjectFileContentError(status, reason, message);
149
+ };
150
+ const validateContentPath = (path) => {
151
+ if (path.includes('\0')) {
152
+ contentError(400, 'nul_byte', 'File path contains a NUL byte');
153
+ }
154
+ if (isAbsolute(path) || win32.isAbsolute(path) || parse(path).root !== '') {
155
+ contentError(400, 'absolute_path', 'File path must be repository-relative');
156
+ }
157
+ const segments = process.platform === 'win32' ? path.split(/[\\/]/) : path.split('/');
158
+ if (!path || segments.some(segment => segment === '' || segment === '.' || segment === '..')) {
159
+ contentError(400, 'path_traversal', 'File path is not a valid repository-relative path');
160
+ }
161
+ return segments;
162
+ };
163
+ const isBinaryBuffer = (value) => {
164
+ const sample = value.subarray(0, Math.min(value.length, BINARY_SAMPLE_BYTES));
165
+ if (sample.includes(0)) {
166
+ return true;
167
+ }
168
+ let controls = 0;
169
+ for (const byte of sample) {
170
+ if (byte < 9 || (byte > 13 && byte < 32)) {
171
+ controls += 1;
172
+ }
173
+ }
174
+ return sample.length > 0 && controls / sample.length > 0.3;
175
+ };
176
+ const readBoundedFile = (root, segments) => {
177
+ let descriptor = null;
178
+ try {
179
+ const openFlags = constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK;
180
+ let candidatePath = root;
181
+ for (const [index, segment] of segments.entries()) {
182
+ candidatePath = resolve(candidatePath, segment);
183
+ const stats = lstatSync(candidatePath);
184
+ if (stats.isSymbolicLink()) {
185
+ contentError(422, 'symlink', 'Symlink content is not supported');
186
+ }
187
+ if (index < segments.length - 1 && !stats.isDirectory()) {
188
+ contentError(404, 'missing', 'File is no longer available');
189
+ }
190
+ }
191
+ const canonicalPath = realpathSync(candidatePath);
192
+ const relativePath = relative(root, canonicalPath);
193
+ if (!relativePath || relativePath === '..' || relativePath.startsWith(`..${sep}`) || isAbsolute(relativePath)) {
194
+ contentError(422, 'symlink', 'Symlink content is not supported');
195
+ }
196
+ descriptor = openSync(canonicalPath, openFlags);
197
+ const stats = fstatSync(descriptor);
198
+ const openedPath = realpathSync(canonicalPath);
199
+ const openedRelativePath = relative(root, openedPath);
200
+ const openedStats = statSync(openedPath);
201
+ if (openedRelativePath === '..'
202
+ || openedRelativePath.startsWith(`..${sep}`)
203
+ || isAbsolute(openedRelativePath)
204
+ || openedStats.dev !== stats.dev
205
+ || openedStats.ino !== stats.ino) {
206
+ contentError(422, 'symlink', 'Symlink content is not supported');
207
+ }
208
+ if (!stats.isFile()) {
209
+ contentError(422, 'not_regular_file', 'Only regular files can be read');
210
+ }
211
+ if (stats.size > MAX_CONTENT_BYTES) {
212
+ contentError(413, 'oversized', 'File exceeds the 1 MiB content limit');
213
+ }
214
+ const buffer = Buffer.allocUnsafe(MAX_CONTENT_BYTES + 1);
215
+ let bytesRead = 0;
216
+ while (bytesRead < buffer.length) {
217
+ const count = readSync(descriptor, buffer, bytesRead, buffer.length - bytesRead, bytesRead);
218
+ if (count === 0) {
219
+ break;
220
+ }
221
+ bytesRead += count;
222
+ }
223
+ if (bytesRead > MAX_CONTENT_BYTES) {
224
+ contentError(413, 'oversized', 'File exceeds the 1 MiB content limit');
225
+ }
226
+ return buffer.subarray(0, bytesRead);
227
+ }
228
+ catch (error) {
229
+ if (error instanceof ProjectFileContentError) {
230
+ throw error;
231
+ }
232
+ const code = error.code;
233
+ if (code === 'ELOOP' || code === 'ENOTDIR') {
234
+ contentError(422, 'symlink', 'Symlink content is not supported');
235
+ }
236
+ if (code === 'ENOENT' || code === 'ENOTDIR') {
237
+ contentError(404, 'missing', 'File is no longer available');
238
+ }
239
+ contentError(422, 'unreadable', 'File cannot be read');
240
+ }
241
+ finally {
242
+ if (descriptor !== null) {
243
+ closeSync(descriptor);
244
+ }
245
+ }
246
+ throw new Error('Unreachable');
247
+ };
248
+ const LANGUAGE_BY_EXTENSION = {
249
+ c: 'c', cc: 'cpp', cpp: 'cpp', cs: 'csharp', css: 'css', go: 'go', h: 'c', hpp: 'cpp',
250
+ html: 'html', java: 'java', js: 'javascript', json: 'json', jsx: 'javascript', kt: 'kotlin',
251
+ md: 'markdown', mjs: 'javascript', mts: 'typescript', php: 'php', py: 'python', rb: 'ruby',
252
+ rs: 'rust', scss: 'scss', sh: 'shell', sql: 'sql', svelte: 'svelte', swift: 'swift', toml: 'toml',
253
+ ts: 'typescript', tsx: 'typescript', vue: 'vue', yaml: 'yaml', yml: 'yaml',
254
+ };
255
+ const getLanguageHint = (path) => {
256
+ const extension = path.includes('.') ? path.slice(path.lastIndexOf('.') + 1).toLowerCase() : '';
257
+ return LANGUAGE_BY_EXTENSION[extension] ?? null;
258
+ };
259
+ export const readProjectFileContent = (workspace, path) => {
260
+ const segments = validateContentPath(path);
261
+ const manifest = getProjectFileManifest(workspace);
262
+ const entry = manifest.entries.find(candidate => candidate.path === path);
263
+ if (!entry) {
264
+ throw new ProjectFileContentError(404, 'not_in_manifest', 'File is not present in the workspace manifest');
265
+ }
266
+ let root = resolve(workspace.cwd);
267
+ try {
268
+ root = realpathSync(workspace.cwd);
269
+ }
270
+ catch {
271
+ if (!isWorkspaceAvailable(workspace.cwd)) {
272
+ throw new ProjectFileTargetUnavailableError();
273
+ }
274
+ contentError(422, 'unreadable', 'Workspace cannot be read');
275
+ }
276
+ const absolutePath = resolve(root, ...segments);
277
+ const relativePath = relative(root, absolutePath);
278
+ if (!relativePath || relativePath === '..' || relativePath.startsWith(`..${sep}`) || isAbsolute(relativePath)) {
279
+ contentError(400, 'path_traversal', 'File path escapes the workspace');
280
+ }
281
+ let buffer;
282
+ try {
283
+ buffer = readBoundedFile(root, segments);
284
+ }
285
+ catch (error) {
286
+ if (!isWorkspaceAvailable(workspace.cwd)) {
287
+ throw new ProjectFileTargetUnavailableError();
288
+ }
289
+ if (error instanceof ProjectFileContentError && error.reason === 'missing' && entry.status === 'deleted') {
290
+ contentError(404, 'deleted', 'File was deleted from the workspace');
291
+ }
292
+ throw error;
293
+ }
294
+ if (isBinaryBuffer(buffer)) {
295
+ contentError(422, 'binary', 'Binary file content is not supported');
296
+ }
297
+ let content = '';
298
+ try {
299
+ content = new TextDecoder('utf-8', { fatal: true }).decode(buffer);
300
+ }
301
+ catch {
302
+ contentError(422, 'invalid_utf8', 'File is not valid UTF-8 text');
303
+ }
304
+ return {
305
+ target: workspace.target,
306
+ path,
307
+ content,
308
+ line_count: content === '' ? 0 : content.split('\n').length,
309
+ language: getLanguageHint(path),
310
+ content_signature: `sha256:${createHash('sha256').update(buffer).digest('hex')}`,
311
+ };
312
+ };
313
+ //# sourceMappingURL=projectFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectFiles.js","sourceRoot":"","sources":["../../../server/lib/projectFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC5H,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAwBvC,MAAM,qBAAqB,GAAG,MAAM,CAAA;AACpC,MAAM,0BAA0B,GAAG,EAAE,CAAA;AACrC,MAAM,oBAAoB,GAAG,OAAO,CAAA;AACpC,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAA;AAC9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAA;AACrC,MAAM,mBAAmB,GAAG,KAAK,CAAA;AAEjC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAA;AAEvD,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,MAAM,CAAQ;IACd,MAAM,CAAgC;IAE/C,YAAY,MAAc,EAAE,MAAsC,EAAE,OAAe;QACjF,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CACF;AAED,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IAC1D;QACE,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,GAAG,mCAAmC,CAAA;IACjD,CAAC;CACF;AAED,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE;IACrD,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE;QAC/B,GAAG;QACH,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,oBAAoB;QAC/B,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACxB,KAAK,CAAC,GAAG,EAAE,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE;IACrC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QAC1G,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,MAA4B,EAA8B,EAAE,CAAC,CAAC;IACnG,IAAI;IACJ,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI;IACzG,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI;IAC9B,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK;IAC/B,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,KAAK;IACnC,UAAU,EAAE,MAAM,EAAE,UAAU,IAAI,KAAK;CACxC,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,CAC3B,MAA2B,EAC3B,eAA0C,EAC1C,OAAqC,EACrC,SAAkB,EAClB,EAAE;IACF,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAA;IACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACjB,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAA;IAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACjB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;AACvC,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,qBAAqB,EAAE,CAAC;YACnD,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC,IAAI,IAAI,0BAA0B,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAA2B,CAAA;QACzE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAK;QACP,CAAC;QACD,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,EAAE;IAChD,aAAa,CAAC,KAAK,EAAE,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAE,EAAE;IAC3C,OAAO,UAAU,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAE,EAAE;IAC/C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,iCAAiC,EAAE,CAAA;IAC/C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,SAAiC,EACjC,UAAiC,EAAE,EACZ,EAAE;IACzB,wBAAwB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACpD,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,qBAAqB,EAAE,CAAC;QACxF,OAAO,MAAM,CAAC,QAAQ,CAAA;IACxB,CAAC;IAED,IAAI,MAAM,CAAA;IACV,IAAI,OAAO,CAAA;IACX,IAAI,SAAS,CAAA;IACb,IAAI,CAAC;QACH,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;QACzE,OAAO,GAAG,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QACtF,SAAS,GAAG,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAChH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,iCAAiC,EAAE,CAAA;QAC/C,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,MAAM,CAAC,KAAK;SACT,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC,CAC3C,CAAA;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAE/B,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1G,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAClC,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/E,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,oBAAoB,CAAA;IAC3D,MAAM,OAAO,GAAG,WAAW;SACxB,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC;SAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;IACjE,MAAM,QAAQ,GAA0B;QACtC,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,OAAO;QACP,SAAS;QACT,mBAAmB,EAAE,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,mBAAmB,EAAE,OAAO,EAAE,SAAS,CAAC;KAC5G,CAAA;IAED,kBAAkB,EAAE,CAAA;IACpB,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC1E,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,MAAsC,EAAE,OAAe,EAAS,EAAE;IACtG,MAAM,IAAI,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AAC5D,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,EAAE;IAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,+BAA+B,CAAC,CAAA;IAChE,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QAC1E,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,uCAAuC,CAAC,CAAA;IAC7E,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACrF,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC;QAC7F,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,mDAAmD,CAAC,CAAA;IAC1F,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAA;IAC7E,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC;YACzC,QAAQ,IAAI,CAAC,CAAA;QACf,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,CAAA;AAC5D,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,QAAkB,EAAU,EAAE;IACnE,IAAI,UAAU,GAAkB,IAAI,CAAA;IACpC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA;QAClF,IAAI,aAAa,GAAG,IAAI,CAAA;QACxB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;YAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,CAAA;YACtC,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,kCAAkC,CAAC,CAAA;YAClE,CAAC;YACD,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxD,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,6BAA6B,CAAC,CAAA;YAC7D,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA;QACjD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAClD,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9G,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,kCAAkC,CAAC,CAAA;QAClE,CAAC;QAED,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;QACnC,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA;QAC9C,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;QACxC,IAAI,kBAAkB,KAAK,IAAI;eAC1B,kBAAkB,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;eACzC,UAAU,CAAC,kBAAkB,CAAC;eAC9B,WAAW,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;eAC7B,WAAW,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;YACnC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,kCAAkC,CAAC,CAAA;QAClE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,YAAY,CAAC,GAAG,EAAE,kBAAkB,EAAE,gCAAgC,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC;YACnC,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,sCAAsC,CAAC,CAAA;QACxE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAA;QACxD,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,OAAO,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,SAAS,CAAC,CAAA;YAC3F,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,MAAK;YACP,CAAC;YACD,SAAS,IAAI,KAAK,CAAA;QACpB,CAAC;QACD,IAAI,SAAS,GAAG,iBAAiB,EAAE,CAAC;YAClC,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,sCAAsC,CAAC,CAAA;QACxE,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;YAC7C,MAAM,KAAK,CAAA;QACb,CAAC;QACD,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAA;QAClD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3C,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,kCAAkC,CAAC,CAAA;QAClE,CAAC;QACD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5C,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,6BAA6B,CAAC,CAAA;QAC7D,CAAC;QACD,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAA;IACxD,CAAC;YAAS,CAAC;QACT,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,SAAS,CAAC,UAAU,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;AAChC,CAAC,CAAA;AAED,MAAM,qBAAqB,GAA2B;IACpD,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK;IACrF,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ;IAC3F,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;IAC1F,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM;IACjG,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAC3E,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/F,OAAO,qBAAqB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAiC,EAAE,IAAY,EAAwB,EAAE;IAC9G,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IACzE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,uBAAuB,CAAC,GAAG,EAAE,iBAAiB,EAAE,+CAA+C,CAAC,CAAA;IAC5G,CAAC;IAEC,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,iCAAiC,EAAE,CAAA;QAC/C,CAAC;QACD,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,0BAA0B,CAAC,CAAA;IAC7D,CAAC;IACH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAA;IAC/C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;IACjD,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9G,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,iCAAiC,CAAC,CAAA;IACxE,CAAC;IAED,IAAI,MAAc,CAAA;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,iCAAiC,EAAE,CAAA;QAC/C,CAAC;QACD,IAAI,KAAK,YAAY,uBAAuB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACzG,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,qCAAqC,CAAC,CAAA;QACrE,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,sCAAsC,CAAC,CAAA;IACrE,CAAC;IAED,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,8BAA8B,CAAC,CAAA;IACnE,CAAC;IAED,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,IAAI;QACJ,OAAO;QACP,UAAU,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;QAC3D,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC;QAC/B,iBAAiB,EAAE,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;KACjF,CAAA;AACH,CAAC,CAAA"}
@@ -181,6 +181,7 @@ export const startFollowUp = (ticket, io, instruction, mode = 'build', options =
181
181
  return false;
182
182
  }
183
183
  beginTicketThinkingRun(ticket.id);
184
+ clearAndEmitAgentRunsForParent(io, 'ticket', ticket.id);
184
185
  updateStatus(ticket.id, 'running', null, io);
185
186
  const activityKind = ticket.state === 'build' ? 'build_follow_up' : 'review_follow_up';
186
187
  enqueue(jobKey, async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"followUp.js","sourceRoot":"","sources":["../../../server/workers/followUp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"followUp.js","sourceRoot":"","sources":["../../../server/workers/followUp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACtG,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,MAAM,MAAM,kBAAkB,CAAA;AACrC,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAC3E,OAAO,EAAE,qCAAqC,EAAE,MAAM,oCAAoC,CAAA;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAC3F,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,EAChC,uCAAuC,EACvC,6BAA6B,EAC7B,mCAAmC,GACpC,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,oCAAoC,GACrC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAC3F,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AACjJ,OAAO,EACL,8BAA8B,EAC9B,oBAAoB,EACpB,YAAY,EACZ,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAG3E,MAAM,eAAe,GAAG,CAAC,KAAc,EAAE,EAAE;IACzC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,MAAkC,EAAE,GAAkB,EAAE,EAAsB,EAAE,EAAE;IACxH,EAAE,CAAC,OAAO,CACR,4HAA4H,CAC7H,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,QAAQ,CAAC,CAAA;IAEpC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;IACzC,IAAI,aAAa,EAAE,kBAAkB,IAAI,aAAa,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACxE,oCAAoC,CAAC,QAAQ,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAA;IAC1D,IAAI,aAAa,EAAE,CAAC;QAClB,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAE,EAAE;IAChD,EAAE,CAAC,OAAO,CAAC,0HAA0H,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACtJ,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC9C,EAAE,CAAC,OAAO,CAAC,wGAAwG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACpI,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAsB,EAAE,EAAE;IACxF,KAAK,MAAM,YAAY,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC3G,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,0BAA0B,GAAG,CAAC,MAAc,EAAE,8BAA8B,GAAG,IAAI,EAAE,EAAE;IAC3F,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,KAAK,SAAS;QACzD,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QACrE,CAAC,CAAC,8BAA8B;YAC9B,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,IAAI,EAAE;YAC/C,CAAC,CAAC,EAAE,CAAA;IACR,OAAO,6BAA6B,CAAC,SAAS,CAAC,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CACrB,MAAc,EACd,WAAmB,EACnB,aAAsB,EACtB,8BAA8B,GAAG,IAAI,EACrC,EAAE;IACF,MAAM,aAAa,GAAG,2BAA2B,CAAC,MAAM,CAAC,UAAU,EAAE;QACnE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,kBAAkB,EAAE,WAAW;QAC/B,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE;KAC1D,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAA;IAE7F,OAAO,uBAAuB,CAAC;;;EAG/B,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK;;;EAGlC,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa;;CAEjC,CAAC,CAAC,CAAC,EAAE;;EAEJ,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB;;CAE3C,CAAC,CAAC,CAAC,EAAE;;;EAGJ,WAAW;;;;;IAKT,6BAA6B,GAAG,qCAAqC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;;EAEtG,qCAAqC,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;AAC5F,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAAC,MAAc,EAAE,WAAmB,EAAE,cAAuB,EAAE,EAAE;IAC9F,MAAM,aAAa,GAAG,2BAA2B,CAAC,MAAM,CAAC,UAAU,EAAE;QACnE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,kBAAkB,EAAE,WAAW;QAC/B,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE;KAC1D,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAA;IAE7D,OAAO,uBAAuB,CAAC;;;;;EAK/B,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK;;;EAGlC,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa;;CAEjC,CAAC,CAAC,CAAC,EAAE;EACJ,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB;;CAE3C,CAAC,CAAC,CAAC,EAAE;;EAEJ,WAAW;;;;;EAKX,+BAA+B,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;AACnD,CAAC,CAAA;AAED,MAAM,yBAAyB,GAAG,CAAC,MAAc,EAAE,EAAE;IACnD,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAA;AACzG,CAAC,CAAA;AAED,MAAM,4BAA4B,GAAG,CAAC,MAAc,EAAE,cAAsB,EAAE,WAAmB,EAAE,aAAsB,EAAE,EAAE;IAC3H,MAAM,aAAa,GAAG,2BAA2B,CAAC,MAAM,CAAC,UAAU,EAAE;QACnE,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,kBAAkB,EAAE,WAAW;QAC/B,UAAU,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE;KAC1D,CAAC,CAAA;IAEF,OAAO;;;EAGP,cAAc;;;EAGd,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa;;CAEjC,CAAC,CAAC,CAAC,EAAE;;;EAGJ,WAAW;;;gbAGma,qCAAqC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;;EAElf,qCAAqC,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AAC5E,CAAC,CAAA;AAED,MAAM,qCAAqC,GAAG,CAC5C,MAAc,EACd,OAA+C,EAC/C,EAAsB,EACb,EAAE;IACX,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACrD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAA;IACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAA;IAC1C,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO,CAAC,CAAA;IACtE,MAAM,WAAW,GAAG,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IACjE,MAAM,QAAQ,GAAG,8BAA8B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAEpE,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAA;QAEd,KAAK,QAAQ;YACX,OAAO,IAAI,CAAA;QAEb,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YACvB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,KAAK,cAAc;YACjB,OAAO,KAAK,CAAA;IAChB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAc,EACd,EAAsB,EACtB,WAAmB,EACnB,OAAwB,OAAO,EAC/B,UAAiD,EAAE,EACnD,EAAE;IACF,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC1D,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACjC,8BAA8B,CAAC,EAAyD,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IAC9G,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IAE5C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAA;IAEtF,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QACzB,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAE5C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;oBACrC,0BAA0B,CAAC,OAAO,CAAC,wBAAwB,EAAE,iCAAiC,CAAC,CAAA;oBAC/F,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;wBACnD,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,uEAAuE,CAAC,CAAA;wBAC9J,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;oBACrE,CAAC;gBACH,CAAC;gBACD,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,EAAE,CAAC,CAAA;gBACvE,OAAM;YACR,CAAC;YAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;YAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;oBACrC,0BAA0B,CAAC,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAA;oBACtF,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;wBACnD,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,uEAAuE,CAAC,CAAA;wBAC9J,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;oBACrE,CAAC;gBACH,CAAC;gBACD,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAA;gBAC9D,OAAM;YACR,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC7G,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,CAAA;YACjE,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,KAAK,OAAO,CAAA;YAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAA;YAChD,MAAM,UAAU,GAAG,IAAI,KAAK,MAAM,CAAA;YAClC,MAAM,oBAAoB,GAAG,aAAa;gBACxC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,iCAAiC,CAAC;oBAChC,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACnB,SAAS,EAAE,MAAM,CAAC,UAAU;oBAC5B,gBAAgB,EAAE,MAAM,CAAC,kBAAkB;iBAC5C,CAAC,CAAA;YACN,IAAI,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACjC,CAAC;YAED,MAAM,cAAc,GAAG,cAAc,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAA;YACvH,MAAM,MAAM,GAAG,UAAU;gBACvB,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC9E,CAAC,CAAC,aAAa;oBACb,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;oBACzG,CAAC,CAAC,uBAAuB,CAAC,4BAA4B,CAAC,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YAEtJ,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAExG,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,MAAM,QAAQ,CAAC;gBACjF,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,IAAI;gBACJ,MAAM;gBACN,GAAG;gBACH,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,eAAe;gBACf,iBAAiB,EAAE,CAAC,UAAU,IAAI,CAAC,aAAa,IAAI,cAAc,CAAC;gBACnE,iBAAiB,EAAE,KAAK;gBACxB,EAAE;gBACF,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aACjD,CAAC,CAAA;YAEF,MAAM,cAAc,GAAG,OAAO,aAAa,KAAK,QAAQ;gBACtD,CAAC,CAAC,mCAAmC,CAAC,aAAa,CAAC;gBACpD,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;YACzF,MAAM,gBAAgB,GAAG,aAAa;gBACpC,CAAC,CAAC,uCAAuC,CAAC;oBACtC,QAAQ,EAAE,cAAc,CAAC,QAAQ;oBACjC,aAAa,EAAE,cAAc,CAAC,aAAa;iBAC5C,CAAC;gBACJ,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;YAElC,IAAI,kBAAkB,GAAkB,IAAI,CAAA;YAC5C,IAAI,gBAAgB,EAAE,CAAC;gBACrB,kBAAkB,GAAG,mBAAmB,CAAC;oBACvC,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACnB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,gBAAgB;oBACzB,cAAc;oBACd,cAAc;iBACf,CAAC,CAAA;gBACF,IAAI,kBAAkB,EAAE,CAAC;oBACvB,yBAAyB,CAAC,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAA;gBAC1D,CAAC;YACH,CAAC;YAED,IAAI,cAAc,EAAE,CAAC;gBACnB,8BAA8B,CAAC,EAAyD,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;YAChH,CAAC;YAED,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAA;YACtD,IAAI,OAAO,CAAC,wBAAwB,IAAI,eAAe,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;gBACnF,0BAA0B,CAAC,OAAO,CAAC,wBAAwB,EAAE,2CAA2C,CAAC,CAAA;gBACzG,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBACnD,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,2CAA2C,CAAC,CAAA;gBACpI,CAAC;YACH,CAAC;YACD,IAAI,aAAa,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,YAAY,KAAK,MAAM,IAAI,cAAc,CAAC,wBAAwB,EAAE,CAAC;gBACvH,EAAE,CAAC,OAAO,CACR,2FAA2F,CAC5F,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gCAAgC,CAAC,eAAe,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;gBACjH,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBACnD,2BAA2B,CAAC;wBAC1B,SAAS,EAAE,MAAM,CAAC,UAAU;wBAC5B,QAAQ,EAAE,MAAM,CAAC,kBAAkB;wBACnC,QAAQ,EAAE,MAAM,CAAC,EAAE;wBACnB,SAAS,EAAE,cAAc,CAAC,aAAa;wBACvC,SAAS,EAAE,aAAa,MAAM,CAAC,EAAE,IAAI,kBAAkB,IAAI,eAAe,CAAC,UAAU,EAAE;qBACxF,CAAC,CAAA;oBACF,MAAM,aAAa,GAAG,+BAA+B,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;oBACnG,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,eAAe,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO,CAAC,CAAA;oBACzF,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;oBAC1F,MAAM,2BAA2B,GAAG,CAClC,aAAa,CAAC,MAAM,GAAG,CAAC;2BACrB,gBAAgB,CAAC,oBAAoB;2BACrC,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,CACvD,CAAA;oBACD,IAAI,2BAA2B,EAAE,CAAC;wBAChC,qBAAqB,CACnB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,kBAAkB,EACzB,gBAAgB,EAChB,GAAG,aAAa,CAAC,MAAM,kCAAkC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CACjG,CAAA;oBACH,CAAC;yBAAM,IAAI,WAAW,EAAE,sBAAsB,KAAK,gBAAgB,EAAE,CAAC;wBACpE,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;oBACpE,CAAC;oBACD,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;gBACrE,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,cAAc,IAAI,cAAc,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpE,+BAA+B,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAA;YACjG,CAAC;YAED,4BAA4B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAEvC,MAAM,oBAAoB,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YACjD,IAAI,oBAAoB,EAAE,CAAC;gBACzB,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAA;YACjD,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACpC,IAAI,aAAa,IAAI,OAAO,EAAE,YAAY,KAAK,MAAM,EAAE,CAAC;oBACtD,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBAC7B,mBAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;oBACvC,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBAClD,IAAI,SAAS,EAAE,CAAC;wBACd,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;oBACtC,CAAC;oBACD,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;wBACnD,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;4BACrC,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC;gCAC7C,0BAA0B,CAAC,OAAO,CAAC,wBAAwB,EAAE,8DAA8D,CAAC,CAAA;gCAC5H,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,8DAA8D,CAAC,CAAA;4BACvJ,CAAC;iCAAM,CAAC;gCACN,+BAA+B,CAAC,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAA;4BAC3E,CAAC;wBACH,CAAC;wBACD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,OAAO,CAAC,CAAA;wBACjF,MAAM,WAAW,GAAG,wBAAwB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;wBAC1F,MAAM,aAAa,GAAG,+BAA+B,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;wBACnG,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;4BACrC,MAAM,2BAA2B,GAAG,cAAc,CAAC,wBAAwB;mCACtE,aAAa,CAAC,MAAM,GAAG,CAAC;mCACxB,gBAAgB,CAAC,oBAAoB;mCACrC,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;4BACxD,IAAI,cAAc,CAAC,wBAAwB,IAAI,CAAC,2BAA2B,EAAE,CAAC;gCAC5E,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;gCAClE,IAAI,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC;oCACxD,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;oCACpH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;wCACrB,0BAA0B,CAAC,OAAO,CAAC,wBAAwB,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;wCAChF,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;oCAC3G,CAAC;gCACH,CAAC;4BACH,CAAC;iCAAM,IAAI,2BAA2B,EAAE,CAAC;gCACvC,qBAAqB,CACnB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,kBAAkB,EACzB,gBAAgB,EAChB,GAAG,aAAa,CAAC,MAAM,kCAAkC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CACjG,CAAA;4BACH,CAAC;wBACH,CAAC;6BAAM,IACL,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC;+BAChD,CAAC,CAAC,WAAW,EAAE,wBAAwB,IAAI,WAAW,CAAC,sBAAsB,KAAK,gBAAgB,CAAC;+BACnG,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,EACvE,CAAC;4BACD,wBAAwB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;wBACjG,CAAC;wBACD,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;oBACrE,CAAC;gBACH,CAAC;qBAAM,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE,YAAY,KAAK,MAAM,EAAE,CAAC;oBAC9D,mBAAmB,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;oBACxC,MAAM,OAAO,GAAG,qCAAqC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;oBAC3E,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;wBAClD,IAAI,SAAS,EAAE,CAAC;4BACd,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;wBACtC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;gBACrC,0BAA0B,CAAC,OAAO,CAAC,wBAAwB,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;gBACpF,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;oBACnD,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,yCAAyC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;oBACxJ,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;gBACrE,CAAC;YACH,CAAC;YACD,MAAM,cAAc,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAA;YACzD,MAAM,YAAY,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAA;YACzD,IAAI,YAAY,EAAE,CAAC;gBACjB,mBAAmB,CAAC;oBAClB,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACnB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,YAAY;oBACrB,cAAc;iBACf,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,cAAc,EAAE,CAAC;gBACnB,8BAA8B,CAAC,EAAyD,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;YAChH,CAAC;YACD,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9D,CAAC;gBAAS,CAAC;YACT,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAChD,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@straiffi/archon",
3
- "version": "1.6.2",
3
+ "version": "1.7.0",
4
4
  "private": false,
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",
@@ -1,4 +0,0 @@
1
- import{a as e}from"./chunk-BNv3lrIs.js";import{A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,K as l,M as u,N as d,O as f,P as p,S as m,T as h,V as g,W as _,_ as v,a as y,b as ee,c as b,d as x,g as te,h as ne,i as S,j as C,k as w,l as re,m as T,n as E,o as D,s as O,x as k,y as ie}from"./index-BnMFJ-iq.js";var A=e(l(),1),ae=(e,t)=>s(c(`/projects/${e}/test-sessions`),{method:`POST`,body:t,fallbackErrorMessage:`Unable to open the test runner right now.`}),oe=(e,t)=>s(c(`/tickets/${e}/test-sessions${t?`?project_id=${encodeURIComponent(t)}`:``}`),{method:`POST`,fallbackErrorMessage:`Unable to open the test runner right now.`}),se=(e,t={})=>s(c(`/test-sessions/${e}/discovery${t.commandId?`?command_id=${encodeURIComponent(t.commandId)}`:``}`),{signal:t.signal,fallbackErrorMessage:`Unable to discover tests right now.`}),ce=(e,t)=>s(c(`/test-sessions/${e}/run`),{method:`POST`,body:t,fallbackErrorMessage:`Unable to start the selected tests right now.`}),le=e=>s(c(`/test-sessions/${e}/stop`),{method:`POST`,fallbackErrorMessage:`Unable to stop the test run right now.`}),ue=e=>_(c(`/test-sessions/${e}`),{method:`DELETE`,fallbackErrorMessage:`Unable to close the test runner right now.`}),j=n(),M=256*1024,N=24,P=RegExp(`\x1B\\[[0-9;?]*[ -/]*[@-~]`,`g`),F=(e,t)=>b.t(`common:testsDialog.${e}`,t),de=(e,t)=>{let n=`${e}${t}`;return n.length<=M?n:n.slice(-M)},I=e=>e.replace(P,``),fe=e=>e.scrollHeight-e.scrollTop-e.clientHeight<=N,L=e=>{e.scrollTop=e.scrollHeight},pe=(e,t=!1)=>{L(e);let n=0,r=0;return n=window.requestAnimationFrame(()=>{L(e),t&&(r=window.requestAnimationFrame(()=>{L(e)}))}),()=>{window.cancelAnimationFrame(n),r!==0&&window.cancelAnimationFrame(r)}},me=e=>{if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e;if(typeof t.id!=`string`||typeof t.name!=`string`||typeof t.command!=`string`)return[];let n=t.runner===`vitest`||t.runner===`jest`||t.runner===`unknown`?t.runner:`auto`;return[{id:t.id,name:t.name,command:t.command,runner:n,...typeof t.cwd==`string`&&t.cwd.trim()!==``?{cwd:t.cwd}:{}}]}):[]}catch{return[]}},R=e=>e===`running`?`border-sky-400/40 bg-sky-500/10 text-sky-200`:e===`passed`?`border-emerald-400/40 bg-emerald-500/10 text-emerald-200`:e===`failed`||e===`error`?`border-rose-400/40 bg-rose-500/10 text-rose-200`:e===`stopped`?`border-amber-400/40 bg-amber-500/10 text-amber-200`:`border-border/70 bg-background/60 text-muted-foreground`,he=e=>{if(e==null)return null;if(e<1e3)return`${e} ms`;let t=Math.floor(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m ${i}s`:r>0?`${r}m ${i}s`:`${(e/1e3).toFixed(e>=1e4?0:1)} s`},z=e=>{let t=e.split(`/`);return t[t.length-1]||e},B=e=>e.toLowerCase().trim().split(/\s+/).filter(Boolean),V=(e,t)=>e.length===0?!0:e.every(e=>t.some(t=>t.includes(e))),H=(e,t)=>{let n=B(t);return n.length===0?e:e.flatMap(e=>{let t=z(e.path);if(V(n,[t.toLowerCase(),e.path.toLowerCase()]))return[e];let r=e.cases.filter(r=>V(n,[t.toLowerCase(),e.path.toLowerCase(),r.name.toLowerCase()]));return r.length===0?[]:[{...e,cases:r}]})},U=e=>F(e===`passed`?`status.passed`:e===`failed`?`status.failed`:e===`running`?`status.running`:e===`error`?`status.error`:e===`stopped`?`status.stopped`:`status.idle`),ge=e=>e?.selection?e.selection.kind===`all`?F(`selection.allTests`):e.selection.kind===`case`?e.selection.name:z(e.selection.path):F(`selection.noRunYet`),W=e=>/(^|\s)(?:FAIL|✗)(\s|$)|\b(?:failed|error|stderr|Expected:|Received:)\b/i.test(e)?`failure`:/(^|\s)(?:PASS|✓)(\s|$)|\bpassed\b/i.test(e)?`success`:/\b(?:WARN|warning|skipped|todo|pending)\b/i.test(e)?`warning`:`default`,G=e=>e===`failure`?`text-rose-200`:e===`success`?`text-emerald-200`:e===`warning`?`text-amber-200`:`text-slate-200`,_e=(e,t)=>e===t?!0:e.length===t.length?e.every((e,n)=>{let r=t[n];return r!=null&&e.id===r.id&&e.name===r.name&&e.command===r.command&&e.cwd===r.cwd&&e.runner===r.runner}):!1,ve=`min-w-24 justify-center shadow-none transition-none disabled:opacity-100`,K=({line:e,tone:t})=>(0,j.jsx)(`div`,{"data-tone":t,className:p(`whitespace-pre-wrap break-words`,G(t)),children:e===``?` `:e}),q=(0,A.memo)(({canRunGranular:e,filePath:t,isActive:n,name:r,onRunCase:i})=>(0,j.jsxs)(`button`,{type:`button`,"aria-label":F(`caseRow.runAriaLabel`,{name:r}),title:r,className:p(`flex w-full min-w-0 items-center gap-2.5 rounded-xl px-2.5 py-1.5 text-left transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,e?`cursor-pointer hover:bg-sky-500/10`:`cursor-not-allowed opacity-60`,n&&`bg-sky-500/10`),disabled:!e,onClick:()=>{i(t,r)},children:[(0,j.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full bg-sky-300/80`}),(0,j.jsx)(`span`,{className:`truncate text-xs text-foreground`,children:r})]}));q.displayName=`TestCaseRow`;var J=(0,A.memo)(({activeSelectionKind:e,activeSelectionName:t,activeSelectionPath:n,canRunGranular:i,file:a,isExpanded:o,onRunCase:s,onRunFile:c,onToggleFile:l})=>{let u=e===`file`&&n===a.path,f=e===`case`&&n===a.path;return(0,j.jsx)(S,{open:o,onOpenChange:e=>{l(a.path,e)},children:(0,j.jsxs)(`div`,{className:`space-y-1`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,j.jsx)(D,{asChild:!0,children:(0,j.jsx)(d,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":F(o?`fileRow.collapseAriaLabel`:`fileRow.expandAriaLabel`,{path:a.path}),className:`mt-1 shrink-0 text-muted-foreground hover:text-foreground`,children:(0,j.jsx)(r,{className:p(`h-4 w-4 transition-transform`,o&&`rotate-180`)})})}),(0,j.jsx)(`button`,{type:`button`,"aria-label":F(`fileRow.runAriaLabel`,{path:a.path}),className:p(`min-w-0 flex-1 rounded-xl border border-border/60 bg-background/20 px-2.5 py-2 text-left transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring/50`,i?`cursor-pointer hover:border-sky-400/35 hover:bg-sky-500/10`:`cursor-not-allowed opacity-60`,(u||f)&&`border-sky-400/45 bg-sky-500/10`),disabled:!i,onClick:()=>{c(a.path)},children:(0,j.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,j.jsx)(`span`,{className:`flex size-6 shrink-0 items-center justify-center rounded-md border border-border/70 bg-background/60 text-sky-200`,children:(0,j.jsx)(E,{className:`h-3.5 w-3.5`})}),(0,j.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-start justify-between gap-3`,children:[(0,j.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,j.jsx)(`span`,{className:`block truncate text-xs font-medium text-foreground`,children:z(a.path)}),(0,j.jsx)(`span`,{className:`mt-0.5 block truncate text-[11px] text-muted-foreground`,children:a.path})]}),(0,j.jsx)(`span`,{className:`shrink-0 text-[11px] text-muted-foreground`,children:F(`fileRow.testCount`,{count:a.cases.length})})]})]})})]}),(0,j.jsx)(y,{children:(0,j.jsx)(`div`,{className:`ml-4 border-l border-border/60 pl-6`,children:a.cases.length===0?(0,j.jsx)(`p`,{className:`px-2.5 py-1.5 text-xs text-muted-foreground`,children:F(`fileRow.noNamedTests`)}):(0,j.jsx)(`div`,{className:`space-y-1`,children:a.cases.map(r=>{let o=e===`case`&&n===a.path&&t===r.name;return(0,j.jsx)(q,{canRunGranular:i,filePath:a.path,isActive:o,name:r.name,onRunCase:s},r.id)})})})})]})})});J.displayName=`DiscoveryFileRow`;var ye=(0,A.memo)(({activeSelectionKind:e,activeSelectionName:t,activeSelectionPath:n,availableCommands:i,canRunGranular:a,discovery:o,expandedFiles:s,fullSuiteOnlyNotice:c,isLoading:l,selectedCommandId:u,selectedCommandName:f,sessionError:m,sessionStatus:g,shouldShowCommandSelector:_,onRunCase:y,onRunFile:ee,onSelectCommand:b,onToggleFile:x})=>{let[S,C]=(0,A.useState)(``),w=(0,A.useMemo)(()=>H(o,S),[o,S]),E=(0,A.useMemo)(()=>w.reduce((e,t)=>e+t.cases.length,0),[w]),D=B(S).length>0;return(0,j.jsx)(`aside`,{className:`min-h-0 border-b border-border/70 px-4 py-4 lg:border-r lg:border-b-0`,children:(0,j.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-3`,children:[_&&(0,j.jsxs)(`div`,{className:`space-y-2`,children:[(0,j.jsx)(`p`,{className:`text-xs uppercase tracking-[0.22em] text-muted-foreground`,children:F(`scope.label`)}),(0,j.jsxs)(T,{children:[(0,j.jsx)(v,{asChild:!0,children:(0,j.jsxs)(d,{type:`button`,variant:`outline`,className:`w-full justify-between rounded-xl border-border/70 bg-background/60`,"aria-label":F(`scope.selectedCommandAriaLabel`),disabled:i.length===0||g===`running`,children:[(0,j.jsx)(`span`,{className:`truncate`,children:f??F(`scope.selectTestScope`)}),(0,j.jsx)(r,{className:`h-4 w-4 text-muted-foreground`})]})}),(0,j.jsx)(ne,{align:`start`,className:`w-72`,children:i.map(e=>(0,j.jsx)(te,{className:p(u===e.id&&`bg-accent text-accent-foreground`),onSelect:()=>{b(e.id)},children:(0,j.jsx)(`span`,{className:`truncate`,children:e.name})},e.id))})]})]}),c&&(0,j.jsx)(`div`,{className:`rounded-2xl border border-border/70 bg-background/30 px-4 py-3 text-sm text-muted-foreground`,children:c}),(o.length>0||S.length>0)&&(0,j.jsxs)(`div`,{className:`relative mt-1 shrink-0`,children:[(0,j.jsx)(h,{type:`search`,value:S,onChange:e=>{C(e.target.value)},placeholder:F(`filter.placeholder`),"aria-label":F(`filter.ariaLabel`),className:`pr-10`}),S.length>0&&(0,j.jsx)(d,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":F(`filter.clearAriaLabel`),className:`absolute right-1 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:()=>{C(``)},children:(0,j.jsx)(re,{className:`size-4`})})]}),!i.length&&(0,j.jsx)(`div`,{className:`rounded-2xl border border-dashed border-border/70 bg-background/20 px-4 py-4 text-sm text-muted-foreground`,children:F(`discovery.noCommands`)}),m&&(0,j.jsx)(`div`,{className:`rounded-2xl border border-rose-500/30 bg-rose-500/10 px-4 py-3 text-sm text-rose-200`,children:m}),(0,j.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 overflow-hidden rounded-2xl border border-border/70 bg-background/20 p-4`,children:[(0,j.jsxs)(`div`,{className:`shrink-0 flex items-start justify-between gap-3`,children:[(0,j.jsx)(`div`,{className:`min-w-0`,children:(0,j.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[F(`discovery.fileCount`,{count:w.length}),`, `,F(`discovery.caseCount`,{count:E})]})}),l&&(0,j.jsx)(k,{className:`h-4 w-4 animate-spin text-muted-foreground`})]}),(0,j.jsx)(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto pr-1`,children:o.length===0&&!l?(0,j.jsx)(`div`,{className:`rounded-2xl border border-dashed border-border/70 bg-background/20 px-4 py-5 text-sm text-muted-foreground`,children:F(`discovery.noFilesDetected`)}):w.length===0?(0,j.jsx)(`div`,{className:`rounded-2xl border border-dashed border-border/70 bg-background/20 px-4 py-5 text-sm text-muted-foreground`,children:F(`discovery.noFilterMatches`)}):w.map(r=>(0,j.jsx)(J,{activeSelectionKind:e,activeSelectionName:t,activeSelectionPath:n,canRunGranular:a,file:r,isExpanded:D||(s[r.path]??!1),onRunCase:y,onRunFile:ee,onToggleFile:x},r.path))})]})]})})});ye.displayName=`DiscoveryPane`;var be=(0,A.memo)(({durationMs:e,output:t,outputTruncated:n,selectionLabel:r,status:i,summaryCounts:a,viewportRef:o,onScroll:s})=>{let c=(0,A.useMemo)(()=>t?I(t).replace(/\r\n/g,`
2
- `).replace(/\r/g,`
3
- `).split(`
4
- `).map(e=>({line:e,tone:W(e)})):[],[t]);return(0,j.jsx)(`section`,{className:`min-h-0 px-4 py-4`,children:(0,j.jsxs)(`div`,{className:`flex h-full flex-col gap-3`,children:[(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,j.jsx)(`span`,{className:`font-medium text-foreground`,children:r}),i&&(0,j.jsx)(O,{variant:`outline`,className:p(`px-3 py-1 text-xs uppercase tracking-[0.2em]`,R(i)),children:U(i)}),a&&(0,j.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-xs font-medium uppercase tracking-[0.18em]`,children:[(0,j.jsxs)(`span`,{className:`text-rose-200`,children:[a.failed.count,` `,a.failed.label]}),(0,j.jsxs)(`span`,{className:`text-emerald-200`,children:[a.passed.count,` `,a.passed.label]})]}),e!=null&&(0,j.jsx)(`span`,{className:`text-muted-foreground`,children:he(e)}),n&&(0,j.jsx)(O,{variant:`outline`,className:`border-amber-400/30 bg-amber-500/10 text-amber-200`,children:F(`output.trimmed`)})]}),(0,j.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden rounded-2xl border border-border/70 bg-[#0d1017]`,children:(0,j.jsx)(`div`,{ref:o,"aria-label":F(`output.ariaLabel`),className:`h-full overflow-auto px-4 py-4`,onScroll:s,children:(0,j.jsx)(`div`,{className:`font-mono text-xs leading-5`,children:c.length>0?c.map((e,t)=>(0,j.jsx)(K,{line:e.line,tone:e.tone},`${t}:${e.line}`)):(0,j.jsx)(`div`,{className:`text-slate-200`,children:F(`output.empty`)})})})})]})})});be.displayName=`OutputPane`;var xe=({testCommands:e,onClose:n,...r})=>{let s=r.scope,c=r.projectId,l=r.scope===`ticket`?r.ticketId:null,p=r.scope===`project`?r.targetKind:null,h=r.scope===`project`?r.targetBundleId:null,[_,v]=(0,A.useState)(e),[y,b]=(0,A.useState)(null),[te,ne]=(0,A.useState)([]),[S,T]=(0,A.useState)(``),[E,D]=(0,A.useState)({}),[O,k]=(0,A.useState)(!0),[M,N]=(0,A.useState)(!1),[P,I]=(0,A.useState)(!1),[L,R]=(0,A.useState)(null),[he,z]=(0,A.useState)(!1),[B,V]=(0,A.useState)(!1),H=(0,A.useRef)(null),U=(0,A.useRef)(!1),W=(0,A.useRef)(null),G=(0,A.useRef)(!0),K=(0,A.useRef)(null),q=(0,A.useRef)(null),J=y?.selection?.kind??null,xe=y?.selection?.kind===`all`?null:y?.selection?.path??null,Se=y?.selection?.kind===`case`?y.selection.name:null,Y=y?.id??null,X=y?.status??null,Z=(0,A.useMemo)(()=>_.find(e=>e.id===S)??null,[_,S]),Ce=(0,A.useMemo)(()=>{if(y?.summary?.failed_count==null&&y?.summary?.passed_count==null&&y?.summary?.failed_file_count==null&&y?.summary?.passed_file_count==null)return null;let e=y?.summary?.failed_count==null&&y?.summary?.passed_count==null;return{failed:X===`failed`&&y?.summary?.failed_count==null&&y?.summary?.failed_file_count!=null||e?{count:y?.summary?.failed_file_count??0,label:F(`summaryCounts.filesFailed`)}:{count:y?.summary?.failed_count??0,label:F(`summaryCounts.failed`)},passed:e?{count:y?.summary?.passed_file_count??0,label:F(`summaryCounts.filesPassed`)}:{count:y?.summary?.passed_count??y?.summary?.passed_file_count??0,label:F(`summaryCounts.passed`)}}},[y?.summary?.failed_count,y?.summary?.passed_count,y?.summary?.failed_file_count,y?.summary?.passed_file_count,X]),we=Z?.runner===`unknown`?F(`scope.fullSuiteOnlyNotice`):null,Te=!!(Z&&y?.status!==`running`&&!M&&!P),Ee=Te,De=Te&&B,Oe=_.length>1;(0,A.useEffect)(()=>{S||_.length===0||T(_[0]?.id??``)},[_,S]),(0,A.useEffect)(()=>{e.length>0&&v(t=>_e(t,e)?t:e)},[e]),(0,A.useEffect)(()=>{if(_.length>0||!c)return;let e=new AbortController;return o(e.signal).then(e=>{let t=e.find(e=>e.id===c);t&&v(e=>{let n=me(t.test_commands??null);return _e(e,n)?e:n})}).catch(()=>{}),()=>{e.abort()}},[_.length,c]),(0,A.useEffect)(()=>{let e=e=>{!e||e.id!==H.current||b(e)},t=e=>{!e||e.session_id!==H.current||b(t=>!t||t.id!==e.session_id?t:{...t,output:de(t.output,e.chunk),output_truncated:e.output_truncated})};return x.on(`test-session:updated`,e),x.on(`test-session:output`,t),()=>{x.off(`test-session:updated`,e),x.off(`test-session:output`,t)}},[]),(0,A.useEffect)(()=>{let e=W.current;if(!e){K.current=y?.output??null,q.current=y?.status??null;return}let t=K.current!==(y?.output??null),n=q.current!==`running`&&y?.status===`running`,r=q.current===`running`&&y?.status!==`running`;if(n&&(G.current=!0),n||t&&y?.status===`running`&&G.current||r&&G.current){let t=pe(e,r);return K.current=y?.output??null,q.current=y?.status??null,t}K.current=y?.output??null,q.current=y?.status??null},[y?.output,y?.status]),(0,A.useEffect)(()=>{let e=!1;return(async()=>{try{let t;if(s===`project`){if(!c)return;t=await ae(c,{target_kind:p??`repo_root`,target_bundle_id:h??null})}else t=await oe(l??``,c);if(e)return;H.current=t.id,b(t)}catch(t){e||R(t instanceof g?t.message:F(`messages.loadRunnerError`))}finally{!e&&H.current==null&&k(!1)}})(),()=>{e=!0}},[c,s,h,p,l]),(0,A.useEffect)(()=>{if(!y?.id){V(!1);return}if(_.length>0&&!S){V(!1);return}let e=new AbortController,t=!1;return k(!0),V(!1),se(y.id,{commandId:S||null,signal:e.signal}).then(e=>{t||(ne(e.files),V(e.supports_granular_selection))}).catch(n=>{t||e.signal.aborted||R(n instanceof g?n.message:F(`messages.discoverError`))}).finally(()=>{t||k(!1)}),()=>{t=!0,e.abort()}},[_.length,S,y?.id]),(0,A.useEffect)(()=>()=>{let e=H.current;!e||U.current||(U.current=!0,ue(e).catch(()=>{}))},[]);let Q=(0,A.useCallback)(async e=>{if(!(!Y||X===`running`||!Z||M||P)){R(null),N(!0);try{b(await ce(Y,{command_id:Z.id,selection:e}))}catch(e){R(e instanceof g?e.message:F(`messages.startError`))}finally{N(!1)}}},[M,P,Z,Y,X]),ke=(0,A.useCallback)(async()=>{if(!(!Y||X!==`running`||P)){R(null),I(!0);try{b(await le(Y))}catch(e){R(e instanceof g?e.message:F(`messages.stopError`))}finally{I(!1)}}},[P,Y,X]),$=(0,A.useCallback)(()=>{let e=H.current;if(!e||U.current){n();return}U.current=!0,n(),ue(e).catch(()=>{})},[n]),Ae=(0,A.useCallback)(()=>{if(X===`running`){z(!0);return}$()},[$,X]),je=(0,A.useCallback)(()=>{let e=W.current;e&&(G.current=fe(e))},[]),Me=(0,A.useCallback)(e=>{T(e)},[]),Ne=(0,A.useCallback)((e,t)=>{D(n=>(n[e]??!1)===t?n:{...n,[e]:t})},[]),Pe=(0,A.useCallback)(e=>{Q({kind:`file`,path:e})},[Q]),Fe=(0,A.useCallback)((e,t)=>{Q({kind:`case`,path:e,name:t})},[Q]);return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(a,{open:!0,onOpenChange:e=>{e||Ae()},children:(0,j.jsxs)(f,{showCloseButton:!1,overlayClassName:`bg-black/70`,className:`flex h-[calc(100vh-2rem)] max-h-[58rem] w-full max-w-[calc(100%-1rem)] flex-col gap-0 overflow-hidden rounded-3xl border border-[#2a2a38] bg-[#16161f] p-0 shadow-2xl sm:max-w-7xl`,onInteractOutside:e=>e.preventDefault(),children:[(0,j.jsx)(u,{className:`sr-only`,children:F(`dialog.srTitle`)}),(0,j.jsx)(w,{className:`sr-only`,children:F(`dialog.srDescription`)}),(0,j.jsxs)(`div`,{className:`flex items-start justify-between gap-4 border-b border-border px-6 py-4`,children:[(0,j.jsx)(`div`,{className:`min-w-0`,children:(0,j.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,j.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-2xl border border-border/70 bg-background/60 text-sky-200`,children:(0,j.jsx)(m,{className:`h-5 w-5`})}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{className:`text-2xl font-semibold text-foreground`,children:F(`dialog.title`)}),(0,j.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:y?.target_label??F(`dialog.preparingTarget`)})]})]})}),(0,j.jsx)(i,{asChild:!0,children:(0,j.jsx)(d,{type:`button`,"aria-label":F(`dialog.closeAriaLabel`),variant:`ghost`,size:`icon-sm`,className:`cursor-pointer text-muted-foreground hover:text-foreground`,children:(0,j.jsx)(re,{className:`h-4 w-4`})})})]}),(0,j.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-0 lg:grid-cols-[22rem_minmax(0,1fr)]`,children:[(0,j.jsx)(ye,{activeSelectionKind:J,activeSelectionName:Se,activeSelectionPath:xe,availableCommands:_,canRunGranular:De,discovery:te,expandedFiles:E,fullSuiteOnlyNotice:we,isLoading:O,selectedCommandId:S,selectedCommandName:Z?.name??null,sessionError:L,sessionStatus:X,shouldShowCommandSelector:Oe,onRunCase:Fe,onRunFile:Pe,onSelectCommand:Me,onToggleFile:Ne}),(0,j.jsx)(be,{durationMs:y?.duration_ms??null,output:y?.output??``,outputTruncated:y?.output_truncated??!1,selectionLabel:ge(y),status:X,summaryCounts:Ce,viewportRef:W,onScroll:je})]}),(0,j.jsx)(t,{className:`border-t border-border/70 px-6 py-4 sm:flex-row sm:items-center sm:justify-end`,children:(0,j.jsx)(`div`,{className:`flex items-center justify-end gap-2`,children:y?.status===`running`?(0,j.jsxs)(d,{type:`button`,variant:`destructive`,className:ve,onClick:()=>{ke()},disabled:P,children:[(0,j.jsx)(ie,{className:`h-4 w-4`}),(0,j.jsx)(`span`,{children:F(`actions.stop`)})]}):(0,j.jsxs)(d,{type:`button`,variant:`success`,className:ve,disabled:!Ee,onClick:()=>{Q({kind:`all`})},children:[(0,j.jsx)(ee,{className:`h-4 w-4`}),(0,j.jsx)(`span`,{children:F(`actions.run`)})]})})})]})}),(0,j.jsx)(a,{open:he,onOpenChange:z,children:(0,j.jsxs)(f,{showCloseButton:!1,overlayClassName:`z-[60] bg-black/60`,className:`z-[60] max-w-md rounded-2xl border border-border bg-card p-6 shadow-2xl`,children:[(0,j.jsxs)(C,{children:[(0,j.jsx)(u,{className:`text-sm font-semibold uppercase tracking-widest text-muted-foreground`,children:F(`closeConfirmation.title`)}),(0,j.jsx)(w,{className:`text-sm text-foreground whitespace-pre-line`,children:F(`closeConfirmation.description`)})]}),(0,j.jsxs)(t,{className:`sm:flex-row sm:justify-end`,children:[(0,j.jsx)(d,{type:`button`,variant:`ghost`,onClick:()=>z(!1),children:F(`closeConfirmation.keepRunning`)}),(0,j.jsx)(d,{type:`button`,variant:`destructive`,onClick:()=>{z(!1),$()},children:F(`closeConfirmation.stopAndClose`)})]})]})})]})};export{xe as TestsDialog};
@@ -1 +0,0 @@
1
- import"./chunk-NNHCCRGN-DRSAMe5H.js";import{n as e}from"./chunk-4EGX6M5U-BBQHxMeA.js";export{e as createArchitectureServices};
@@ -1 +0,0 @@
1
- import{at as e,ot as t}from"./chunk-CSCIHK7Q-BSL0qTfP.js";var n=(n,r)=>t.lang.round(e.parse(n)[r]);export{n as t};
@@ -1 +0,0 @@
1
- import{h as e}from"./src-Bi_byJUe.js";var t=class{constructor(e){this.init=e,this.records=this.init()}static{e(this,`ImperativeState`)}reset(){this.records=this.init()}};export{t};
@@ -1 +0,0 @@
1
- import{h as e,p as t}from"./src-Bi_byJUe.js";import{x as n}from"./chunk-CSCIHK7Q-BSL0qTfP.js";var r=e(e=>{let{securityLevel:r}=n(),i=t(`body`);return r===`sandbox`&&(i=t((t(`#i${e}`).node()?.contentDocument??document).body)),i.select(`#${e}`)},`selectSvgElement`);export{r as t};
@@ -1 +0,0 @@
1
- import{h as e}from"./src-Bi_byJUe.js";import"./chunk-CSCIHK7Q-BSL0qTfP.js";import"./chunk-5ZQYHXKU-DZL6nSFA.js";import"./chunk-O5CBEL6O-BW2gf35w.js";import"./chunk-FMBD7UC4-CWQN4V4s.js";import"./chunk-BSJP7CBP-CNtf2uaW.js";import"./chunk-L5ZTLDWV-D8yXktZ8.js";import"./chunk-ND2GUHAM-Dc6gtC7r.js";import"./chunk-55IACEB6-B-d-YzxI.js";import"./chunk-2J33WTMH-Ck8V3BxZ.js";import"./chunk-NZK2D7GU-CJMnwR03.js";import"./chunk-3OPIFGDE-DvZbg_ji.js";import"./chunk-KSCS5N6A-C1zDfxY8.js";import"./chunk-LZXEDZCA-CjmFVV-I.js";import{i as t,n,r,t as i}from"./chunk-727SXJPM-DMy23TqS.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import{h as e}from"./src-Bi_byJUe.js";import"./chunk-CSCIHK7Q-BSL0qTfP.js";import"./chunk-5ZQYHXKU-DZL6nSFA.js";import"./chunk-O5CBEL6O-BW2gf35w.js";import"./chunk-FMBD7UC4-CWQN4V4s.js";import"./chunk-BSJP7CBP-CNtf2uaW.js";import"./chunk-L5ZTLDWV-D8yXktZ8.js";import"./chunk-ND2GUHAM-Dc6gtC7r.js";import"./chunk-55IACEB6-B-d-YzxI.js";import"./chunk-2J33WTMH-Ck8V3BxZ.js";import"./chunk-NZK2D7GU-CJMnwR03.js";import"./chunk-3OPIFGDE-DvZbg_ji.js";import"./chunk-KSCS5N6A-C1zDfxY8.js";import"./chunk-LZXEDZCA-CjmFVV-I.js";import{i as t,n,r,t as i}from"./chunk-727SXJPM-DMy23TqS.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import"./chunk-NNHCCRGN-DRSAMe5H.js";import{n as e}from"./chunk-N66VUXT2-CkkAOkdt.js";export{e as createEventModelingServices};
@@ -1 +0,0 @@
1
- import"./chunk-NNHCCRGN-DRSAMe5H.js";import{n as e}from"./chunk-UIBZB4QT-BRR84OYN.js";export{e as createGitGraphServices};