@straiffi/archon 1.4.6 → 1.4.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 (135) hide show
  1. package/dist/client/assets/GitHubActionsDialog-B0yRjwYQ.js +1 -0
  2. package/dist/client/assets/TestsDialog-CcSvemLJ.js +5 -0
  3. package/dist/client/assets/{arc-4YfDy8uK.js → arc-CnuHRbeq.js} +1 -1
  4. package/dist/client/assets/architecture-7EHR7CIX-tSrokdFP.js +1 -0
  5. package/dist/client/assets/{architectureDiagram-3BPJPVTR-B0ybRTUn.js → architectureDiagram-3BPJPVTR-DJjMJGQa.js} +1 -1
  6. package/dist/client/assets/{blockDiagram-GPEHLZMM-DrrQouTh.js → blockDiagram-GPEHLZMM-D7qr0WKZ.js} +1 -1
  7. package/dist/client/assets/{c4Diagram-AAUBKEIU-BJdqjAbL.js → c4Diagram-AAUBKEIU-Dtpwhh8J.js} +1 -1
  8. package/dist/client/assets/channel-JBvp4GqN.js +1 -0
  9. package/dist/client/assets/{chunk-2J33WTMH-Dh6TqsDY.js → chunk-2J33WTMH-BImOu1wB.js} +1 -1
  10. package/dist/client/assets/{chunk-3OPIFGDE-BI6L9trS.js → chunk-3OPIFGDE-WBqy9pqS.js} +1 -1
  11. package/dist/client/assets/{chunk-4BX2VUAB-B3mVWXS4.js → chunk-4BX2VUAB-_WBpCe0m.js} +1 -1
  12. package/dist/client/assets/{chunk-4EGX6M5U-DTB6Um9X.js → chunk-4EGX6M5U-BBQHxMeA.js} +1 -1
  13. package/dist/client/assets/{chunk-55IACEB6-BB-0ajVZ.js → chunk-55IACEB6-B-d-YzxI.js} +1 -1
  14. package/dist/client/assets/{chunk-5DO6E6H7-DtX6GYFY.js → chunk-5DO6E6H7-BA-oSVa-.js} +1 -1
  15. package/dist/client/assets/{chunk-5ZQYHXKU-mt5W2CGF.js → chunk-5ZQYHXKU-gzwfOytX.js} +1 -1
  16. package/dist/client/assets/{chunk-727SXJPM-D7IvpFAq.js → chunk-727SXJPM-DZRDmsY-.js} +1 -1
  17. package/dist/client/assets/{chunk-AQP2D5EJ-CjusndWN.js → chunk-AQP2D5EJ-BNsOD4b1.js} +1 -1
  18. package/dist/client/assets/{chunk-BR22UD5L-CkJbcXZG.js → chunk-BR22UD5L-prWX503j.js} +1 -1
  19. package/dist/client/assets/{chunk-BSJP7CBP-X4eyoSqE.js → chunk-BSJP7CBP-CNtf2uaW.js} +1 -1
  20. package/dist/client/assets/{chunk-CSCIHK7Q-BmXd8_5X.js → chunk-CSCIHK7Q-Be5NZf-h.js} +2 -2
  21. package/dist/client/assets/{chunk-FHYWG6QK-Cb5GzaCb.js → chunk-FHYWG6QK-BQ8n0J0S.js} +1 -1
  22. package/dist/client/assets/{chunk-FMBD7UC4-mGY2D2YB.js → chunk-FMBD7UC4-CWQN4V4s.js} +1 -1
  23. package/dist/client/assets/{chunk-KSCS5N6A-DJIqk8ji.js → chunk-KSCS5N6A-t3G5p-H3.js} +1 -1
  24. package/dist/client/assets/{chunk-L5ZTLDWV-CRVFCsvJ.js → chunk-L5ZTLDWV-08eeTRtA.js} +1 -1
  25. package/dist/client/assets/{chunk-LZXEDZCA-CRla8IXQ.js → chunk-LZXEDZCA-BhEnRZZ3.js} +2 -2
  26. package/dist/client/assets/{chunk-MPE355IW-WT7jTCZh.js → chunk-MPE355IW-gHN8AuU_.js} +1 -1
  27. package/dist/client/assets/{chunk-MZUSXYTE-CClXfOSj.js → chunk-MZUSXYTE-Clzaz1kK.js} +1 -1
  28. package/dist/client/assets/{chunk-N66VUXT2-Bpe4yprw.js → chunk-N66VUXT2-CkkAOkdt.js} +1 -1
  29. package/dist/client/assets/{chunk-ND2GUHAM-BYAb7NsA.js → chunk-ND2GUHAM-n8aRhp2g.js} +1 -1
  30. package/dist/client/assets/{chunk-NZK2D7GU-DUI0mwZm.js → chunk-NZK2D7GU-BzDdHd-c.js} +1 -1
  31. package/dist/client/assets/{chunk-O5CBEL6O-BX5VWTmZ.js → chunk-O5CBEL6O-B4hb9RKU.js} +1 -1
  32. package/dist/client/assets/{chunk-PUPMXCY4-Dh45WL5s.js → chunk-PUPMXCY4-DAdQFv8j.js} +1 -1
  33. package/dist/client/assets/chunk-QZHKN3VN-biOr9EeQ.js +1 -0
  34. package/dist/client/assets/{chunk-UIBZB4QT-Cp2xSKlH.js → chunk-UIBZB4QT-BRR84OYN.js} +1 -1
  35. package/dist/client/assets/{chunk-WCWK7LTN-BOt5FFIu.js → chunk-WCWK7LTN-CQU7Fs_W.js} +1 -1
  36. package/dist/client/assets/chunk-WU5MYG2G-95dAWX8f.js +1 -0
  37. package/dist/client/assets/{chunk-XPW4576I-YiT9fJFY.js → chunk-XPW4576I-DafcxlUi.js} +1 -1
  38. package/dist/client/assets/classDiagram-4FO5ZUOK-vGoYHbZF.js +1 -0
  39. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DuL6ksKg.js +1 -0
  40. package/dist/client/assets/{cose-bilkent-S5V4N54A-CtC2zeMr.js → cose-bilkent-S5V4N54A-DhJHP9hr.js} +1 -1
  41. package/dist/client/assets/{dagre-BM42HDAG-CqGwgHpm.js → dagre-BM42HDAG-BrFwfUb5.js} +1 -1
  42. package/dist/client/assets/{dagre-5AiD43Uu.js → dagre-CdwzCXQr.js} +1 -1
  43. package/dist/client/assets/{diagram-2AECGRRQ-W2M_p8Yv.js → diagram-2AECGRRQ-C-spx6S1.js} +1 -1
  44. package/dist/client/assets/{diagram-5GNKFQAL-Cl9Hh0jb.js → diagram-5GNKFQAL-CTGmw6IF.js} +1 -1
  45. package/dist/client/assets/{diagram-KO2AKTUF-Cn0-x5HI.js → diagram-KO2AKTUF-CGR_6C8P.js} +1 -1
  46. package/dist/client/assets/{diagram-LMA3HP47-BH2_JbrM.js → diagram-LMA3HP47-Biu8iKKN.js} +1 -1
  47. package/dist/client/assets/{diagram-OG6HWLK6-DuSmDdz3.js → diagram-OG6HWLK6-CgPqxTkQ.js} +1 -1
  48. package/dist/client/assets/{erDiagram-TEJ5UH35-DMHLFeQs.js → erDiagram-TEJ5UH35-Dvb5W4CZ.js} +1 -1
  49. package/dist/client/assets/eventmodeling-FCH6USID-DapHLQIh.js +1 -0
  50. package/dist/client/assets/{flowDiagram-I6XJVG4X-G6q9UKR3.js → flowDiagram-I6XJVG4X-tU7PIdFt.js} +1 -1
  51. package/dist/client/assets/{ganttDiagram-6RSMTGT7-hhWmmnFi.js → ganttDiagram-6RSMTGT7-Cxn3Y-uw.js} +1 -1
  52. package/dist/client/assets/gitGraph-WXDBUCRP-BTBN_hfb.js +1 -0
  53. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CvmZJ3zf.js → gitGraphDiagram-PVQCEYII-C3ODPbCH.js} +1 -1
  54. package/dist/client/assets/index--HKq89za.css +2 -0
  55. package/dist/client/assets/index-QYW4Cu-e.js +260 -0
  56. package/dist/client/assets/info-J43DQDTF-CgiMJYKF.js +1 -0
  57. package/dist/client/assets/{infoDiagram-5YYISTIA-BIes94lQ.js → infoDiagram-5YYISTIA-DI-gw2Xm.js} +1 -1
  58. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-1sUDbjPm.js → ishikawaDiagram-YF4QCWOH-Boo7JuBN.js} +1 -1
  59. package/dist/client/assets/{journeyDiagram-JHISSGLW-BEEP6Na-.js → journeyDiagram-JHISSGLW-N9__o75J.js} +1 -1
  60. package/dist/client/assets/{kanban-definition-UN3LZRKU-CPFego8B.js → kanban-definition-UN3LZRKU-BbtqdHL3.js} +1 -1
  61. package/dist/client/assets/{line-BdjuNfVr.js → line-MwEcOq8D.js} +1 -1
  62. package/dist/client/assets/{linear-BYVhmsFj.js → linear-DFIW-KnM.js} +1 -1
  63. package/dist/client/assets/{mermaid-parser.core-ep6OPAQm.js → mermaid-parser.core-C_-_i9ct.js} +2 -2
  64. package/dist/client/assets/{mermaid.core-CgiGEZhy.js → mermaid.core-jFmh7tic.js} +3 -3
  65. package/dist/client/assets/{mindmap-definition-RKZ34NQL-0hOE50-8.js → mindmap-definition-RKZ34NQL-cAM3OmtA.js} +1 -1
  66. package/dist/client/assets/{ordinal-DIg8h6NI.js → ordinal-C1FS1Sfe.js} +1 -1
  67. package/dist/client/assets/packet-YPE3B663-Bnwqjena.js +1 -0
  68. package/dist/client/assets/pie-LRSECV5Y-Ctj0ef-4.js +1 -0
  69. package/dist/client/assets/{pieDiagram-4H26LBE5-BEgccEEE.js → pieDiagram-4H26LBE5-B7wO_tA6.js} +1 -1
  70. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CvDyAdJI.js → quadrantDiagram-W4KKPZXB-41IRD1HZ.js} +1 -1
  71. package/dist/client/assets/radar-GUYGQ44K-DE0H_saz.js +1 -0
  72. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DSmztQBO.js → requirementDiagram-4Y6WPE33-CRp-2G5Y.js} +1 -1
  73. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DgDUHUAw.js → sankeyDiagram-5OEKKPKP-C2jxwbv9.js} +1 -1
  74. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BYaYgN0W.js → sequenceDiagram-3UESZ5HK-C0ifwFNY.js} +1 -1
  75. package/dist/client/assets/{stateDiagram-AJRCARHV-CqU_4LpV.js → stateDiagram-AJRCARHV-DtkDso6_.js} +1 -1
  76. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CpWls-En.js +1 -0
  77. package/dist/client/assets/{timeline-definition-PNZ67QCA-BTYLNo8J.js → timeline-definition-PNZ67QCA-DwL2DqkA.js} +1 -1
  78. package/dist/client/assets/treeView-BLDUP644-CSAZL2OH.js +1 -0
  79. package/dist/client/assets/treemap-LRROVOQU-tYm4XKfP.js +1 -0
  80. package/dist/client/assets/{vennDiagram-CIIHVFJN-C-MV8-cy.js → vennDiagram-CIIHVFJN-Cd1A1glE.js} +1 -1
  81. package/dist/client/assets/wardley-L42UT6IY-DdiEFppm.js +1 -0
  82. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-BOZ5g5Fn.js → wardleyDiagram-YWT4CUSO-DpWpjU7R.js} +1 -1
  83. package/dist/client/assets/{xychartDiagram-2RQKCTM6-6wYwr3vn.js → xychartDiagram-2RQKCTM6-BROvAGf_.js} +1 -1
  84. package/dist/client/index.html +2 -2
  85. package/dist/server/db.js +64 -0
  86. package/dist/server/db.js.map +1 -1
  87. package/dist/server/index.js +191 -0
  88. package/dist/server/index.js.map +1 -1
  89. package/dist/server/lib/chatOperations.js +6 -0
  90. package/dist/server/lib/chatOperations.js.map +1 -1
  91. package/dist/server/lib/integrations/assignedIssues.js +21 -9
  92. package/dist/server/lib/integrations/assignedIssues.js.map +1 -1
  93. package/dist/server/lib/integrations/github.js +10 -0
  94. package/dist/server/lib/integrations/github.js.map +1 -1
  95. package/dist/server/lib/integrations/githubActions.js +266 -0
  96. package/dist/server/lib/integrations/githubActions.js.map +1 -0
  97. package/dist/server/lib/integrations/githubActionsSessions.js +168 -0
  98. package/dist/server/lib/integrations/githubActionsSessions.js.map +1 -0
  99. package/dist/server/lib/specOperations.js +6 -0
  100. package/dist/server/lib/specOperations.js.map +1 -1
  101. package/dist/server/lib/ticketWorkflowOperations.js +6 -0
  102. package/dist/server/lib/ticketWorkflowOperations.js.map +1 -1
  103. package/dist/server/lib/trackedExternalIssues.js +33 -0
  104. package/dist/server/lib/trackedExternalIssues.js.map +1 -0
  105. package/package.json +2 -1
  106. package/dist/client/assets/TestsDialog-Vy9cdwzA.js +0 -5
  107. package/dist/client/assets/architecture-7EHR7CIX-B0ldQ5d_.js +0 -1
  108. package/dist/client/assets/channel-B3iXJSit.js +0 -1
  109. package/dist/client/assets/chunk-QZHKN3VN-U_l6-b5-.js +0 -1
  110. package/dist/client/assets/chunk-WU5MYG2G-xHcJhj1C.js +0 -1
  111. package/dist/client/assets/classDiagram-4FO5ZUOK-BvskNpH1.js +0 -1
  112. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-B1-Afdak.js +0 -1
  113. package/dist/client/assets/eventmodeling-FCH6USID-BczyucFk.js +0 -1
  114. package/dist/client/assets/gitGraph-WXDBUCRP-x5mlGyzr.js +0 -1
  115. package/dist/client/assets/index-CT3aYWb0.js +0 -260
  116. package/dist/client/assets/index-D6gWjd6J.css +0 -2
  117. package/dist/client/assets/info-J43DQDTF-BsM_Qb70.js +0 -1
  118. package/dist/client/assets/packet-YPE3B663-DeVIMHV5.js +0 -1
  119. package/dist/client/assets/pie-LRSECV5Y-ByRF4_cj.js +0 -1
  120. package/dist/client/assets/radar-GUYGQ44K-XEreg8aR.js +0 -1
  121. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-C_J0aecM.js +0 -1
  122. package/dist/client/assets/treeView-BLDUP644-D85P2Ji3.js +0 -1
  123. package/dist/client/assets/treemap-LRROVOQU-BnXG5utQ.js +0 -1
  124. package/dist/client/assets/wardley-L42UT6IY-Ct9qHtJP.js +0 -1
  125. /package/dist/client/assets/{array-DOVTz2Mq.js → array-B57E4cSs.js} +0 -0
  126. /package/dist/client/assets/{chunk-NNHCCRGN-C4ci-Gd6.js → chunk-NNHCCRGN-DRSAMe5H.js} +0 -0
  127. /package/dist/client/assets/{cytoscape.esm-DnmRtSj9.js → cytoscape.esm-CVYSm6AJ.js} +0 -0
  128. /package/dist/client/assets/{defaultLocale-Ck2Xxk-C.js → defaultLocale-6WHJ3B09.js} +0 -0
  129. /package/dist/client/assets/{dist-BQjeO--f.js → dist-By2zKKTF.js} +0 -0
  130. /package/dist/client/assets/{graphlib-CMVU3iJd.js → graphlib-B0DVs0bw.js} +0 -0
  131. /package/dist/client/assets/{init-Bft5Ffpj.js → init-DiYCGS1R.js} +0 -0
  132. /package/dist/client/assets/{katex-Bpz5kWH9.js → katex-bgJu_0Fy.js} +0 -0
  133. /package/dist/client/assets/{path-DfRbCp9y.js → path-DL_QDy2X.js} +0 -0
  134. /package/dist/client/assets/{rough.esm-DCvqWubr.js → rough.esm-Bbn_-PMU.js} +0 -0
  135. /package/dist/client/assets/{src-BcaL9nCM.js → src-Bi_byJUe.js} +0 -0
@@ -0,0 +1,168 @@
1
+ import { randomUUID } from 'crypto';
2
+ import { getGitHubWorkflowRun, getGitHubWorkflowRunJobs, listGitHubWorkflowRuns, } from './githubActions.js';
3
+ const POLL_INTERVAL_MS = 5_000;
4
+ const TRACKED_RUN_TTL_MS = 60 * 60 * 1000;
5
+ const MAX_RESOLVE_ATTEMPTS = 6;
6
+ const trackedRuns = new Map();
7
+ let pollInterval = null;
8
+ let ioReference = null;
9
+ const isTerminalStatus = (run) => {
10
+ return Boolean(run && run.status === 'completed');
11
+ };
12
+ const serializeTrackedRun = (record) => ({
13
+ tracking_key: record.trackingKey,
14
+ project_id: record.projectId,
15
+ workflow_id: record.workflowId,
16
+ dispatched_at: new Date(record.dispatchedAtMs).toISOString(),
17
+ run: record.run,
18
+ state: record.resolveState,
19
+ });
20
+ const emitTrackedRunUpdate = (record) => {
21
+ if (!ioReference) {
22
+ return;
23
+ }
24
+ ioReference.emit('github-actions:updated', serializeTrackedRun(record));
25
+ };
26
+ const resolveRunId = async (record) => {
27
+ if (record.runId !== null || record.resolveAttempts >= MAX_RESOLVE_ATTEMPTS) {
28
+ return;
29
+ }
30
+ record.resolveAttempts += 1;
31
+ try {
32
+ const runs = await listGitHubWorkflowRuns(record.config, record.workflowId);
33
+ const matchingRun = runs.find(candidate => {
34
+ if (!candidate.created_at) {
35
+ return false;
36
+ }
37
+ const createdAtMs = Date.parse(candidate.created_at);
38
+ if (!Number.isFinite(createdAtMs)) {
39
+ return false;
40
+ }
41
+ return createdAtMs >= record.dispatchedAtMs - 1_000;
42
+ });
43
+ if (matchingRun) {
44
+ record.runId = matchingRun.id;
45
+ record.run = matchingRun;
46
+ record.resolveState = 'resolved';
47
+ return;
48
+ }
49
+ if (record.resolveAttempts >= MAX_RESOLVE_ATTEMPTS) {
50
+ record.resolveState = 'not_visible';
51
+ }
52
+ }
53
+ catch (error) {
54
+ console.warn(`[github-actions] run resolution failed workflow=${record.workflowId}`, error);
55
+ }
56
+ };
57
+ const refreshTrackedRun = async (record) => {
58
+ if (record.runId === null) {
59
+ return;
60
+ }
61
+ try {
62
+ const [run, jobs] = await Promise.all([
63
+ getGitHubWorkflowRun(record.config, record.runId),
64
+ getGitHubWorkflowRunJobs(record.config, record.runId),
65
+ ]);
66
+ record.run = { ...run, jobs };
67
+ }
68
+ catch (error) {
69
+ console.warn(`[github-actions] run refresh failed run=${record.runId}`, error);
70
+ }
71
+ };
72
+ const tick = async () => {
73
+ if (trackedRuns.size === 0) {
74
+ return;
75
+ }
76
+ const records = [...trackedRuns.values()];
77
+ for (const record of records) {
78
+ if (Date.now() - record.dispatchedAtMs > TRACKED_RUN_TTL_MS) {
79
+ trackedRuns.delete(record.trackingKey);
80
+ continue;
81
+ }
82
+ if (isTerminalStatus(record.run)) {
83
+ continue;
84
+ }
85
+ try {
86
+ if (record.runId === null) {
87
+ await resolveRunId(record);
88
+ }
89
+ else {
90
+ await refreshTrackedRun(record);
91
+ }
92
+ emitTrackedRunUpdate(record);
93
+ if (isTerminalStatus(record.run) || record.resolveState === 'not_visible') {
94
+ trackedRuns.delete(record.trackingKey);
95
+ }
96
+ }
97
+ catch (error) {
98
+ console.warn(`[github-actions] poll tick failed tracking_key=${record.trackingKey}`, error);
99
+ }
100
+ }
101
+ };
102
+ const ensurePolling = () => {
103
+ if (pollInterval) {
104
+ return;
105
+ }
106
+ pollInterval = setInterval(() => {
107
+ void tick();
108
+ }, POLL_INTERVAL_MS);
109
+ };
110
+ const stopPolling = () => {
111
+ if (!pollInterval) {
112
+ return;
113
+ }
114
+ clearInterval(pollInterval);
115
+ pollInterval = null;
116
+ };
117
+ export const trackGitHubActionsRun = (input) => {
118
+ ioReference = input.io;
119
+ const dispatchedAtMs = input.dispatchedAt ?? Date.now();
120
+ const record = {
121
+ trackingKey: randomUUID(),
122
+ projectId: input.projectId,
123
+ workflowId: input.workflowId,
124
+ dispatchedAtMs,
125
+ config: input.config,
126
+ runId: null,
127
+ run: null,
128
+ resolveAttempts: 0,
129
+ resolveState: 'resolving',
130
+ };
131
+ trackedRuns.set(record.trackingKey, record);
132
+ ensurePolling();
133
+ void resolveRunId(record).then(() => {
134
+ emitTrackedRunUpdate(record);
135
+ if (record.runId !== null && isTerminalStatus(record.run)) {
136
+ trackedRuns.delete(record.trackingKey);
137
+ }
138
+ }).catch(error => {
139
+ console.warn(`[github-actions] initial run resolution failed workflow=${input.workflowId}`, error);
140
+ });
141
+ return serializeTrackedRun(record);
142
+ };
143
+ export const untrackGitHubActionsRun = (trackingKey) => {
144
+ return trackedRuns.delete(trackingKey);
145
+ };
146
+ export const getTrackedGitHubActionsRuns = (projectId) => {
147
+ return [...trackedRuns.values()]
148
+ .filter(record => record.projectId === projectId)
149
+ .map(serializeTrackedRun);
150
+ };
151
+ export const getActiveTrackedRunCount = (projectId) => {
152
+ let activeCount = 0;
153
+ for (const record of trackedRuns.values()) {
154
+ if (record.projectId !== projectId) {
155
+ continue;
156
+ }
157
+ if (record.run === null || !isTerminalStatus(record.run)) {
158
+ activeCount += 1;
159
+ }
160
+ }
161
+ return activeCount;
162
+ };
163
+ export const clearAllGitHubActionsSessions = () => {
164
+ trackedRuns.clear();
165
+ stopPolling();
166
+ return Promise.resolve();
167
+ };
168
+ //# sourceMappingURL=githubActionsSessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"githubActionsSessions.js","sourceRoot":"","sources":["../../../../server/lib/integrations/githubActionsSessions.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ import { normalizeSkillNames } from './skills.js';
7
7
  import { createSpecSession, getSpecSession, deleteSpecSession, getTicketIdsForOriginSpecSession, getChatSessionIdsForOriginSpecSession, clearOriginSpecReferences, updateSpecSessionMode } from './specs.js';
8
8
  import { getChatSession } from './chats.js';
9
9
  import { getTicket } from './tickets.js';
10
+ import { markExternalIssueTracked } from './trackedExternalIssues.js';
11
+ import { clearCachedAssignedIssues } from './integrations/assignedIssuesCache.js';
10
12
  import { startSpecSessionTurn } from '../workers/specSession.js';
11
13
  const getPayloadValue = (payload, key) => {
12
14
  return payload?.[key];
@@ -56,6 +58,10 @@ export const createProjectSpecSession = ({ projectId, payload, broadcaster, }) =
56
58
  skills: normalizeSkillNames(getPayloadValue(payload, 'skills')),
57
59
  externalSource: parseIncomingExternalSource(getPayloadValue(payload, 'external_source')),
58
60
  });
61
+ if (specSession?.external_source) {
62
+ markExternalIssueTracked(project.id, specSession.external_source);
63
+ clearCachedAssignedIssues(project.id);
64
+ }
59
65
  broadcaster.emit('spec-session:created', specSession);
60
66
  return { ok: true, status: 201, value: specSession };
61
67
  };
@@ -1 +1 @@
1
- {"version":3,"file":"specOperations.js","sourceRoot":"","sources":["../../../server/lib/specOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,qCAAqC,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAC5M,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAShE,MAAM,eAAe,GAAG,CAAC,OAA6B,EAAE,GAAW,EAAE,EAAE;IACrE,OAAO,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAE,aAAqB,EAAE,EAAE;IACzE,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,KAAc,EAAY,EAAE;IACnD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAmB,EAAE;IACjE,OAAO,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,SAAS,EACT,OAAO,EACP,WAAW,GAKZ,EAA2C,EAAE;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9D,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAA;IAC3F,MAAM,eAAe,GAAG,IAAI,KAAK,UAAU;QACzC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,IAAI;QACpC,CAAC,CAAC,IAAI,KAAK,QAAQ;YACjB,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,IAAI;YAC1C,CAAC,CAAC,IAAI,CAAA;IACV,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAC5D,MAAM,iBAAiB,GAAG,IAAI,KAAK,UAAU,IAAI,eAAe,IAAI,OAAO,gBAAgB,KAAK,QAAQ;QACtG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,IAAI;QACjC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,eAAe;YACtC,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI;YAChC,CAAC,CAAC,IAAI,CAAA;IACV,MAAM,WAAW,GAAG,iBAAiB,CAAC;QACpC,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,IAAI;QACJ,IAAI;QACJ,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,iBAAiB;QAC1B,MAAM,EAAE,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/D,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;KACzF,CAAC,CAAA;IAEF,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAA;IACrD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAC3C,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,GAMZ,EAA2C,EAAE;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC5G,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;IACxD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;AACzD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,EAC9C,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,GAMZ,EAA2C,EAAE;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,oBAAoB,GAAG,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IACpE,MAAM,WAAW,GAAG,OAAO,oBAAoB,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAE/F,MAAM,sBAAsB,GAAG,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;IACzE,IAAI,sBAAsB,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC;QACxJ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAA;IACzF,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC;QACzD,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACnE,CAAC,CAAC,EAAE,CAAA;IACN,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAA;IACvF,CAAC;IAED,MAAM,mBAAmB,GAAG,qCAAqC,CAAC;QAChE,aAAa,EAAE,QAAQ,CAAC,EAAE;QAC1B,aAAa;KACd,CAAC,CAAA;IACF,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAA;IACrE,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAA;IAC3F,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,IAAI,CAAC;QACH,QAAQ,GAAG,oBAAoB,CAAC;YAC9B,aAAa,EAAE,QAAQ,CAAC,EAAE;YAC1B,WAAW;YACX,WAAW,EAAE,mBAAmB,CAAC,WAAW;YAC5C,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;YACrD,OAAO,EAAE,OAAO,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc;YACzI,MAAM,EAAE,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/D,EAAE,EAAE,WAAW;SAChB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IAClG,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAA;IACnF,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;AACzF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,EAAE,EACnD,SAAS,EACT,aAAa,GAId,EAA8C,EAAE;IAC/C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACpE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iDAAiD,EAAE,CAAA;IAC7F,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,SAAS,EACT,aAAa,EACb,WAAW,GAKZ,EAAqC,EAAE;IACtC,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,aAAa,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACtC,kEAAkE;IACpE,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,gCAAgC,CAAC,aAAa,CAAC,CAAA;IACzE,MAAM,sBAAsB,GAAG,qCAAqC,CAAC,aAAa,CAAC,CAAA;IAEnF,yBAAyB,CAAC,aAAa,CAAC,CAAA;IACxC,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAEhC,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IACD,KAAK,MAAM,aAAa,IAAI,sBAAsB,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;IACvF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;AACvD,CAAC,CAAA"}
1
+ {"version":3,"file":"specOperations.js","sourceRoot":"","sources":["../../../server/lib/specOperations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,gCAAgC,EAAE,qCAAqC,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAC5M,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAShE,MAAM,eAAe,GAAG,CAAC,OAA6B,EAAE,GAAW,EAAE,EAAE;IACrE,OAAO,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAE,aAAqB,EAAE,EAAE;IACzE,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,KAAc,EAAY,EAAE;IACnD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAmB,EAAE;IACjE,OAAO,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,SAAS,EACT,OAAO,EACP,WAAW,GAKZ,EAA2C,EAAE;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9D,MAAM,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9D,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAA;IAC3F,MAAM,eAAe,GAAG,IAAI,KAAK,UAAU;QACzC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,IAAI;QACpC,CAAC,CAAC,IAAI,KAAK,QAAQ;YACjB,CAAC,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,IAAI;YAC1C,CAAC,CAAC,IAAI,CAAA;IACV,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAC5D,MAAM,iBAAiB,GAAG,IAAI,KAAK,UAAU,IAAI,eAAe,IAAI,OAAO,gBAAgB,KAAK,QAAQ;QACtG,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,IAAI;QACjC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,eAAe;YACtC,CAAC,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI;YAChC,CAAC,CAAC,IAAI,CAAA;IACV,MAAM,WAAW,GAAG,iBAAiB,CAAC;QACpC,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,IAAI;QACJ,IAAI;QACJ,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,iBAAiB;QAC1B,MAAM,EAAE,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC/D,cAAc,EAAE,2BAA2B,CAAC,eAAe,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;KACzF,CAAC,CAAA;IAEF,IAAI,WAAW,EAAE,eAAe,EAAE,CAAC;QACjC,wBAAwB,CAAC,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;QACjE,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAA;IACrD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;AACtD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAC3C,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,GAMZ,EAA2C,EAAE;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC5G,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;IACxD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;AACzD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,EAC9C,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,GAMZ,EAA2C,EAAE;IAC5C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,oBAAoB,GAAG,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IACpE,MAAM,WAAW,GAAG,OAAO,oBAAoB,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAE/F,MAAM,sBAAsB,GAAG,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;IACzE,IAAI,sBAAsB,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC;QACxJ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAA;IACzF,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC;QACzD,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACnE,CAAC,CAAC,EAAE,CAAA;IACN,IAAI,CAAC,WAAW,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAA;IACvF,CAAC;IAED,MAAM,mBAAmB,GAAG,qCAAqC,CAAC;QAChE,aAAa,EAAE,QAAQ,CAAC,EAAE;QAC1B,aAAa;KACd,CAAC,CAAA;IACF,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAA;IACrE,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAA;IAC3F,IAAI,QAAQ,GAAG,KAAK,CAAA;IAEpB,IAAI,CAAC;QACH,QAAQ,GAAG,oBAAoB,CAAC;YAC9B,aAAa,EAAE,QAAQ,CAAC,EAAE;YAC1B,WAAW;YACX,WAAW,EAAE,mBAAmB,CAAC,WAAW;YAC5C,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;YACrD,OAAO,EAAE,OAAO,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc;YACzI,MAAM,EAAE,mBAAmB,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/D,EAAE,EAAE,WAAW;SAChB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IAClG,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAA;IACnF,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAA;AACzF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,EAAE,EACnD,SAAS,EACT,aAAa,GAId,EAA8C,EAAE;IAC/C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACpE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,iDAAiD,EAAE,CAAA;IAC7F,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;AACvD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,SAAS,EACT,aAAa,EACb,WAAW,GAKZ,EAAqC,EAAE;IACtC,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;IACjE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACvD,CAAC;IAED,aAAa,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACtC,kEAAkE;IACpE,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,gCAAgC,CAAC,aAAa,CAAC,CAAA;IACzE,MAAM,sBAAsB,GAAG,qCAAqC,CAAC,aAAa,CAAC,CAAA;IAEnF,yBAAyB,CAAC,aAAa,CAAC,CAAA;IACxC,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAEhC,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;QAClC,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IACD,KAAK,MAAM,aAAa,IAAI,sBAAsB,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;QACjD,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;IACvF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAA;AACvD,CAAC,CAAA"}
@@ -7,6 +7,8 @@ import { getEffectiveProject } from './projects.js';
7
7
  import { getSpecSession } from './specs.js';
8
8
  import { assignTicketLaneOrder, autoParkTicketIfStale, getTicket, resolveTicketTool } from './tickets.js';
9
9
  import { getBundleAutomationState, recordAutomationPause } from './ticketAutomation.js';
10
+ import { markExternalIssueTracked } from './trackedExternalIssues.js';
11
+ import { clearCachedAssignedIssues } from './integrations/assignedIssuesCache.js';
10
12
  import { startBuild } from '../workers/build.js';
11
13
  import { startReview } from '../workers/review.js';
12
14
  const VALID_TICKET_STATES = ['plan', 'build', 'review'];
@@ -76,6 +78,10 @@ export const transitionTicketState = ({ ticketId, requestedState, requestedProje
76
78
  };
77
79
  }
78
80
  broadcaster.emit('ticket:updated', buildTransition.ticket);
81
+ if (buildTransition.ticket.project_id && buildTransition.ticket.external_source) {
82
+ markExternalIssueTracked(buildTransition.ticket.project_id, buildTransition.ticket.external_source);
83
+ clearCachedAssignedIssues(buildTransition.ticket.project_id);
84
+ }
79
85
  const originSpecSessionId = buildTransition.ticket.origin_spec_session_id ?? null;
80
86
  if (originSpecSessionId) {
81
87
  const result = db.prepare('UPDATE spec_sessions SET has_completed_work = 1, updated_at = CURRENT_TIMESTAMP WHERE id = ? AND has_completed_work = 0').run(originSpecSessionId);
@@ -1 +1 @@
1
- {"version":3,"file":"ticketWorkflowOperations.js","sourceRoot":"","sources":["../../../server/lib/ticketWorkflowOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ticketWorkflowOperations.js","sourceRoot":"","sources":["../../../server/lib/ticketWorkflowOperations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { randomUUID } from 'crypto';
2
+ import db from '../db.js';
3
+ const insertTrackedIssueStatement = db.prepare(`INSERT OR IGNORE INTO tracked_external_issues (id, project_id, external_provider, external_id, external_key, external_url)
4
+ VALUES (?, ?, ?, ?, ?, ?)`);
5
+ export const markExternalIssueTracked = (projectId, source) => {
6
+ if (!source) {
7
+ return;
8
+ }
9
+ if (source.provider !== 'github' && source.provider !== 'jira') {
10
+ return;
11
+ }
12
+ if (!source.external_key) {
13
+ return;
14
+ }
15
+ insertTrackedIssueStatement.run(randomUUID(), projectId, source.provider, source.external_id || null, source.external_key, source.external_url ?? null);
16
+ };
17
+ export const getTrackedExternalIssueKeys = (projectId) => {
18
+ const rows = db.prepare('SELECT external_provider, external_key FROM tracked_external_issues WHERE project_id = ?').all(projectId);
19
+ const trackedKeys = new Map();
20
+ for (const row of rows) {
21
+ if (row.external_provider !== 'github' && row.external_provider !== 'jira') {
22
+ continue;
23
+ }
24
+ if (!row.external_key) {
25
+ continue;
26
+ }
27
+ const providerSet = trackedKeys.get(row.external_provider) ?? new Set();
28
+ providerSet.add(row.external_key);
29
+ trackedKeys.set(row.external_provider, providerSet);
30
+ }
31
+ return trackedKeys;
32
+ };
33
+ //# sourceMappingURL=trackedExternalIssues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackedExternalIssues.js","sourceRoot":"","sources":["../../../server/lib/trackedExternalIssues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEnC,OAAO,EAAE,MAAM,UAAU,CAAA;AAQzB,MAAM,2BAA2B,GAAG,EAAE,CAAC,OAAO,CAC5C;6BAC2B,CAC5B,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,SAAiB,EACjB,MAA+C,EACzC,EAAE;IACR,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAM;IACR,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/D,OAAM;IACR,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,OAAM;IACR,CAAC;IAED,2BAA2B,CAAC,GAAG,CAC7B,UAAU,EAAE,EACZ,SAAS,EACT,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,WAAW,IAAI,IAAI,EAC1B,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,YAAY,IAAI,IAAI,CAC5B,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,SAAiB,EAAyC,EAAE;IACtG,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,0FAA0F,CAC3F,CAAC,GAAG,CAAC,SAAS,CAA8B,CAAA;IAE7C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoC,CAAA;IAC/D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,iBAAiB,KAAK,QAAQ,IAAI,GAAG,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC;YAC3E,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YACtB,SAAQ;QACV,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,GAAG,EAAU,CAAA;QAC/E,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACjC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@straiffi/archon",
3
- "version": "1.4.6",
3
+ "version": "1.4.7",
4
4
  "private": false,
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",
@@ -38,6 +38,7 @@
38
38
  "cors": "^2.8.6",
39
39
  "express": "^5.2.1",
40
40
  "i18next": "^26.0.8",
41
+ "js-yaml": "^4.1.0",
41
42
  "multer": "^2.1.1",
42
43
  "node-pty": "^1.1.0",
43
44
  "socket.io": "^4.8.3",
@@ -1,5 +0,0 @@
1
- import{a as e}from"./chunk-BNv3lrIs.js";import{A as t,C as n,D as r,E as i,F as a,M as o,N as s,O as c,P as l,S as u,T as d,_ as f,a as p,b as m,c as ee,d as h,f as g,g as _,h as te,i as v,j as y,k as ne,l as b,m as x,n as S,o as C,p as w,r as T,s as E,u as re,v as D,w as ie,x as ae,y as O}from"./index-CT3aYWb0.js";var k=e(a(),1),oe=(e,t)=>l(o(`/projects/${e}/test-sessions`),{method:`POST`,body:t,fallbackErrorMessage:`Unable to open the test runner right now.`}),se=(e,t)=>l(o(`/tickets/${e}/test-sessions${t?`?project_id=${encodeURIComponent(t)}`:``}`),{method:`POST`,fallbackErrorMessage:`Unable to open the test runner right now.`}),ce=(e,t={})=>l(o(`/test-sessions/${e}/discovery${t.commandId?`?command_id=${encodeURIComponent(t.commandId)}`:``}`),{signal:t.signal,fallbackErrorMessage:`Unable to discover tests right now.`}),le=(e,t)=>l(o(`/test-sessions/${e}/run`),{method:`POST`,body:t,fallbackErrorMessage:`Unable to start the selected tests right now.`}),ue=e=>l(o(`/test-sessions/${e}/stop`),{method:`POST`,fallbackErrorMessage:`Unable to stop the test run right now.`}),de=e=>s(o(`/test-sessions/${e}`),{method:`DELETE`,fallbackErrorMessage:`Unable to close the test runner right now.`}),A=t(),j=256*1024,M=24,N=RegExp(`\x1B\\[[0-9;?]*[ -/]*[@-~]`,`g`),P=(e,t)=>E.t(`common:testsDialog.${e}`,t),fe=(e,t)=>{let n=`${e}${t}`;return n.length<=j?n:n.slice(-j)},F=e=>e.replace(N,``),pe=e=>e.scrollHeight-e.scrollTop-e.clientHeight<=M,I=e=>{e.scrollTop=e.scrollHeight},me=(e,t=!1)=>{I(e);let n=0,r=0;return n=window.requestAnimationFrame(()=>{I(e),t&&(r=window.requestAnimationFrame(()=>{I(e)}))}),()=>{window.cancelAnimationFrame(n),r!==0&&window.cancelAnimationFrame(r)}},he=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[]}},L=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`,ge=e=>e==null?null:e<1e3?`${e} ms`:`${(e/1e3).toFixed(e>=1e4?0:1)} s`,R=e=>{let t=e.split(`/`);return t[t.length-1]||e},z=e=>e.toLowerCase().trim().split(/\s+/).filter(Boolean),B=(e,t)=>e.length===0?!0:e.every(e=>t.some(t=>t.includes(e))),V=(e,t)=>{let n=z(t);return n.length===0?e:e.flatMap(e=>{let t=R(e.path);if(B(n,[t.toLowerCase(),e.path.toLowerCase()]))return[e];let r=e.cases.filter(r=>B(n,[t.toLowerCase(),e.path.toLowerCase(),r.name.toLowerCase()]));return r.length===0?[]:[{...e,cases:r}]})},H=e=>P(e===`passed`?`status.passed`:e===`failed`?`status.failed`:e===`running`?`status.running`:e===`error`?`status.error`:e===`stopped`?`status.stopped`:`status.idle`),_e=e=>e?.selection?e.selection.kind===`all`?P(`selection.allTests`):e.selection.kind===`case`?e.selection.name:R(e.selection.path):P(`selection.noRunYet`),U=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`,W=e=>e===`failure`?`text-rose-200`:e===`success`?`text-emerald-200`:e===`warning`?`text-amber-200`:`text-slate-200`,G=(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,A.jsx)(`div`,{"data-tone":t,className:c(`whitespace-pre-wrap break-words`,W(t)),children:e===``?` `:e}),q=(0,k.memo)(({canRunGranular:e,filePath:t,isActive:n,name:r,onRunCase:i})=>(0,A.jsxs)(`button`,{type:`button`,"aria-label":P(`caseRow.runAriaLabel`,{name:r}),title:r,className:c(`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,A.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full bg-sky-300/80`}),(0,A.jsx)(`span`,{className:`truncate text-xs text-foreground`,children:r})]}));q.displayName=`TestCaseRow`;var J=(0,k.memo)(({activeSelectionKind:e,activeSelectionName:t,activeSelectionPath:n,canRunGranular:i,file:a,isExpanded:o,onRunCase:s,onRunFile:l,onToggleFile:u})=>{let d=e===`file`&&n===a.path,f=e===`case`&&n===a.path;return(0,A.jsx)(T,{open:o,onOpenChange:e=>{u(a.path,e)},children:(0,A.jsxs)(`div`,{className:`space-y-1`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,A.jsx)(p,{asChild:!0,children:(0,A.jsx)(r,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":P(o?`fileRow.collapseAriaLabel`:`fileRow.expandAriaLabel`,{path:a.path}),className:`mt-1 shrink-0 text-muted-foreground hover:text-foreground`,children:(0,A.jsx)(D,{className:c(`h-4 w-4 transition-transform`,o&&`rotate-180`)})})}),(0,A.jsx)(`button`,{type:`button`,"aria-label":P(`fileRow.runAriaLabel`,{path:a.path}),className:c(`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`,(d||f)&&`border-sky-400/45 bg-sky-500/10`),disabled:!i,onClick:()=>{l(a.path)},children:(0,A.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,A.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,A.jsx)(S,{className:`h-3.5 w-3.5`})}),(0,A.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-start justify-between gap-3`,children:[(0,A.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,A.jsx)(`span`,{className:`block truncate text-xs font-medium text-foreground`,children:R(a.path)}),(0,A.jsx)(`span`,{className:`mt-0.5 block truncate text-[11px] text-muted-foreground`,children:a.path})]}),(0,A.jsx)(`span`,{className:`shrink-0 text-[11px] text-muted-foreground`,children:P(`fileRow.testCount`,{count:a.cases.length})})]})]})})]}),(0,A.jsx)(v,{children:(0,A.jsx)(`div`,{className:`ml-4 border-l border-border/60 pl-6`,children:a.cases.length===0?(0,A.jsx)(`p`,{className:`px-2.5 py-1.5 text-xs text-muted-foreground`,children:P(`fileRow.noNamedTests`)}):(0,A.jsx)(`div`,{className:`space-y-1`,children:a.cases.map(r=>{let o=e===`case`&&n===a.path&&t===r.name;return(0,A.jsx)(q,{canRunGranular:i,filePath:a.path,isActive:o,name:r.name,onRunCase:s},r.id)})})})})]})})});J.displayName=`DiscoveryFileRow`;var ye=(0,k.memo)(({activeSelectionKind:e,activeSelectionName:t,activeSelectionPath:n,availableCommands:i,canRunGranular:a,discovery:o,expandedFiles:s,fullSuiteOnlyNotice:l,isLoading:u,selectedCommandId:d,selectedCommandName:f,sessionError:p,sessionStatus:m,shouldShowCommandSelector:te,onRunCase:v,onRunFile:y,onSelectCommand:ne,onToggleFile:b})=>{let[x,S]=(0,k.useState)(``),C=(0,k.useMemo)(()=>V(o,x),[o,x]),T=(0,k.useMemo)(()=>C.reduce((e,t)=>e+t.cases.length,0),[C]),E=z(x).length>0;return(0,A.jsx)(`aside`,{className:`min-h-0 border-b border-border/70 px-4 py-4 lg:border-r lg:border-b-0`,children:(0,A.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-3`,children:[te&&(0,A.jsxs)(`div`,{className:`space-y-2`,children:[(0,A.jsx)(`p`,{className:`text-xs uppercase tracking-[0.22em] text-muted-foreground`,children:P(`scope.label`)}),(0,A.jsxs)(re,{children:[(0,A.jsx)(w,{asChild:!0,children:(0,A.jsxs)(r,{type:`button`,variant:`outline`,className:`w-full justify-between rounded-xl border-border/70 bg-background/60`,"aria-label":P(`scope.selectedCommandAriaLabel`),disabled:i.length===0||m===`running`,children:[(0,A.jsx)(`span`,{className:`truncate`,children:f??P(`scope.selectTestScope`)}),(0,A.jsx)(D,{className:`h-4 w-4 text-muted-foreground`})]})}),(0,A.jsx)(h,{align:`start`,className:`w-72`,children:i.map(e=>(0,A.jsx)(g,{className:c(d===e.id&&`bg-accent text-accent-foreground`),onSelect:()=>{ne(e.id)},children:(0,A.jsx)(`span`,{className:`truncate`,children:e.name})},e.id))})]})]}),l&&(0,A.jsx)(`div`,{className:`rounded-2xl border border-border/70 bg-background/30 px-4 py-3 text-sm text-muted-foreground`,children:l}),(o.length>0||x.length>0)&&(0,A.jsxs)(`div`,{className:`relative mt-1 shrink-0`,children:[(0,A.jsx)(O,{type:`search`,value:x,onChange:e=>{S(e.target.value)},placeholder:P(`filter.placeholder`),"aria-label":P(`filter.ariaLabel`),className:`pr-10`}),x.length>0&&(0,A.jsx)(r,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":P(`filter.clearAriaLabel`),className:`absolute right-1 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:()=>{S(``)},children:(0,A.jsx)(ee,{className:`size-4`})})]}),!i.length&&(0,A.jsx)(`div`,{className:`rounded-2xl border border-dashed border-border/70 bg-background/20 px-4 py-4 text-sm text-muted-foreground`,children:P(`discovery.noCommands`)}),p&&(0,A.jsx)(`div`,{className:`rounded-2xl border border-rose-500/30 bg-rose-500/10 px-4 py-3 text-sm text-rose-200`,children:p}),(0,A.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,A.jsxs)(`div`,{className:`shrink-0 flex items-start justify-between gap-3`,children:[(0,A.jsx)(`div`,{className:`min-w-0`,children:(0,A.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[P(`discovery.fileCount`,{count:C.length}),`, `,P(`discovery.caseCount`,{count:T})]})}),u&&(0,A.jsx)(_,{className:`h-4 w-4 animate-spin text-muted-foreground`})]}),(0,A.jsx)(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto pr-1`,children:o.length===0&&!u?(0,A.jsx)(`div`,{className:`rounded-2xl border border-dashed border-border/70 bg-background/20 px-4 py-5 text-sm text-muted-foreground`,children:P(`discovery.noFilesDetected`)}):C.length===0?(0,A.jsx)(`div`,{className:`rounded-2xl border border-dashed border-border/70 bg-background/20 px-4 py-5 text-sm text-muted-foreground`,children:P(`discovery.noFilterMatches`)}):C.map(r=>(0,A.jsx)(J,{activeSelectionKind:e,activeSelectionName:t,activeSelectionPath:n,canRunGranular:a,file:r,isExpanded:E||(s[r.path]??!1),onRunCase:v,onRunFile:y,onToggleFile:b},r.path))})]})]})})});ye.displayName=`DiscoveryPane`;var be=(0,k.memo)(({durationMs:e,output:t,outputTruncated:n,selectionLabel:r,status:i,summaryCounts:a,viewportRef:o,onScroll:s})=>{let l=(0,k.useMemo)(()=>t?F(t).replaceAll(`\r
2
- `,`
3
- `).replaceAll(`\r`,`
4
- `).split(`
5
- `).map(e=>({line:e,tone:U(e)})):[],[t]);return(0,A.jsx)(`section`,{className:`min-h-0 px-4 py-4`,children:(0,A.jsxs)(`div`,{className:`flex h-full flex-col gap-3`,children:[(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-sm`,children:[(0,A.jsx)(`span`,{className:`font-medium text-foreground`,children:r}),i&&(0,A.jsx)(C,{variant:`outline`,className:c(`px-3 py-1 text-xs uppercase tracking-[0.2em]`,L(i)),children:H(i)}),a&&(0,A.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-xs font-medium uppercase tracking-[0.18em]`,children:[(0,A.jsxs)(`span`,{className:`text-rose-200`,children:[a.failed.count,` `,a.failed.label]}),(0,A.jsxs)(`span`,{className:`text-emerald-200`,children:[a.passed.count,` `,a.passed.label]})]}),e!=null&&(0,A.jsx)(`span`,{className:`text-muted-foreground`,children:ge(e)}),n&&(0,A.jsx)(C,{variant:`outline`,className:`border-amber-400/30 bg-amber-500/10 text-amber-200`,children:P(`output.trimmed`)})]}),(0,A.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden rounded-2xl border border-border/70 bg-[#0d1017]`,children:(0,A.jsx)(`div`,{ref:o,"aria-label":P(`output.ariaLabel`),className:`h-full overflow-auto px-4 py-4`,onScroll:s,children:(0,A.jsx)(`div`,{className:`font-mono text-xs leading-5`,children:l.length>0?l.map((e,t)=>(0,A.jsx)(K,{line:e.line,tone:e.tone},`${t}:${e.line}`)):(0,A.jsx)(`div`,{className:`text-slate-200`,children:P(`output.empty`)})})})})]})})});be.displayName=`OutputPane`;var xe=({testCommands:e,onClose:t,...a})=>{let o=a.scope,s=a.projectId,c=a.scope===`ticket`?a.ticketId:null,l=a.scope===`project`?a.targetKind:null,p=a.scope===`project`?a.targetBundleId:null,[h,g]=(0,k.useState)(e),[_,v]=(0,k.useState)(null),[S,C]=(0,k.useState)([]),[w,T]=(0,k.useState)(``),[E,re]=(0,k.useState)({}),[D,O]=(0,k.useState)(!0),[j,M]=(0,k.useState)(!1),[N,F]=(0,k.useState)(!1),[I,L]=(0,k.useState)(null),[ge,R]=(0,k.useState)(!1),[z,B]=(0,k.useState)(!1),V=(0,k.useRef)(null),H=(0,k.useRef)(!1),U=(0,k.useRef)(null),W=(0,k.useRef)(!0),K=(0,k.useRef)(null),q=(0,k.useRef)(null),J=_?.selection?.kind??null,xe=_?.selection?.kind===`all`?null:_?.selection?.path??null,Se=_?.selection?.kind===`case`?_.selection.name:null,Y=_?.id??null,X=_?.status??null,Z=(0,k.useMemo)(()=>h.find(e=>e.id===w)??null,[h,w]),Ce=(0,k.useMemo)(()=>{if(_?.summary?.failed_count==null&&_?.summary?.passed_count==null&&_?.summary?.failed_file_count==null&&_?.summary?.passed_file_count==null)return null;let e=_?.summary?.failed_count==null&&_?.summary?.passed_count==null;return{failed:X===`failed`&&_?.summary?.failed_count==null&&_?.summary?.failed_file_count!=null||e?{count:_?.summary?.failed_file_count??0,label:P(`summaryCounts.filesFailed`)}:{count:_?.summary?.failed_count??0,label:P(`summaryCounts.failed`)},passed:e?{count:_?.summary?.passed_file_count??0,label:P(`summaryCounts.filesPassed`)}:{count:_?.summary?.passed_count??_?.summary?.passed_file_count??0,label:P(`summaryCounts.passed`)}}},[_?.summary?.failed_count,_?.summary?.passed_count,_?.summary?.failed_file_count,_?.summary?.passed_file_count,X]),we=Z?.runner===`unknown`?P(`scope.fullSuiteOnlyNotice`):null,Te=!!(Z&&_?.status!==`running`&&!j&&!N),Ee=Te,De=Te&&z,Oe=h.length>1;(0,k.useEffect)(()=>{w||h.length===0||T(h[0]?.id??``)},[h,w]),(0,k.useEffect)(()=>{e.length>0&&g(t=>G(t,e)?t:e)},[e]),(0,k.useEffect)(()=>{if(h.length>0||!s)return;let e=new AbortController;return ne(e.signal).then(e=>{let t=e.find(e=>e.id===s);t&&g(e=>{let n=he(t.test_commands);return G(e,n)?e:n})}).catch(()=>{}),()=>{e.abort()}},[h.length,s]),(0,k.useEffect)(()=>{let e=e=>{!e||e.id!==V.current||v(e)},t=e=>{!e||e.session_id!==V.current||v(t=>!t||t.id!==e.session_id?t:{...t,output:fe(t.output,e.chunk),output_truncated:e.output_truncated})};return b.on(`test-session:updated`,e),b.on(`test-session:output`,t),()=>{b.off(`test-session:updated`,e),b.off(`test-session:output`,t)}},[]),(0,k.useEffect)(()=>{let e=U.current;if(!e){K.current=_?.output??null,q.current=_?.status??null;return}let t=K.current!==(_?.output??null),n=q.current!==`running`&&_?.status===`running`,r=q.current===`running`&&_?.status!==`running`;if(n&&(W.current=!0),n||t&&_?.status===`running`&&W.current||r&&W.current){let t=me(e,r);return K.current=_?.output??null,q.current=_?.status??null,t}K.current=_?.output??null,q.current=_?.status??null},[_?.output,_?.status]),(0,k.useEffect)(()=>{let e=!1;return(async()=>{try{let t=o===`project`?await oe(s,{target_kind:l??`repo_root`,target_bundle_id:p??null}):await se(c??``,s);if(e)return;V.current=t.id,v(t)}catch(t){e||L(t instanceof y?t.message:P(`messages.loadRunnerError`))}finally{!e&&V.current==null&&O(!1)}})(),()=>{e=!0}},[s,o,p,l,c]),(0,k.useEffect)(()=>{if(!_?.id){B(!1);return}if(h.length>0&&!w){B(!1);return}let e=new AbortController,t=!1;return O(!0),B(!1),ce(_.id,{commandId:w||null,signal:e.signal}).then(e=>{t||(C(e.files),B(e.supports_granular_selection))}).catch(n=>{t||e.signal.aborted||L(n instanceof y?n.message:P(`messages.discoverError`))}).finally(()=>{t||O(!1)}),()=>{t=!0,e.abort()}},[h.length,w,_?.id]),(0,k.useEffect)(()=>()=>{let e=V.current;!e||H.current||(H.current=!0,de(e).catch(()=>{}))},[]);let Q=(0,k.useCallback)(async e=>{if(!(!Y||X===`running`||!Z||j||N)){L(null),M(!0);try{v(await le(Y,{command_id:Z.id,selection:e}))}catch(e){L(e instanceof y?e.message:P(`messages.startError`))}finally{M(!1)}}},[j,N,Z,Y,X]),ke=(0,k.useCallback)(async()=>{if(!(!Y||X!==`running`||N)){L(null),F(!0);try{v(await ue(Y))}catch(e){L(e instanceof y?e.message:P(`messages.stopError`))}finally{F(!1)}}},[N,Y,X]),$=(0,k.useCallback)(()=>{let e=V.current;if(!e||H.current){t();return}H.current=!0,t(),de(e).catch(()=>{})},[t]),Ae=(0,k.useCallback)(()=>{if(X===`running`){R(!0);return}$()},[$,X]),je=(0,k.useCallback)(()=>{let e=U.current;e&&(W.current=pe(e))},[]),Me=(0,k.useCallback)(e=>{T(e)},[]),Ne=(0,k.useCallback)((e,t)=>{re(n=>(n[e]??!1)===t?n:{...n,[e]:t})},[]),Pe=(0,k.useCallback)(e=>{Q({kind:`file`,path:e})},[Q]),Fe=(0,k.useCallback)((e,t)=>{Q({kind:`case`,path:e,name:t})},[Q]);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(m,{open:!0,onOpenChange:e=>{e||Ae()},children:(0,A.jsxs)(u,{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,A.jsx)(i,{className:`sr-only`,children:P(`dialog.srTitle`)}),(0,A.jsx)(n,{className:`sr-only`,children:P(`dialog.srDescription`)}),(0,A.jsxs)(`div`,{className:`flex items-start justify-between gap-4 border-b border-border px-6 py-4`,children:[(0,A.jsx)(`div`,{className:`min-w-0`,children:(0,A.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,A.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,A.jsx)(f,{className:`h-5 w-5`})}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(`h2`,{className:`text-2xl font-semibold text-foreground`,children:P(`dialog.title`)}),(0,A.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:_?.target_label??P(`dialog.preparingTarget`)})]})]})}),(0,A.jsx)(ae,{asChild:!0,children:(0,A.jsx)(r,{type:`button`,"aria-label":P(`dialog.closeAriaLabel`),variant:`ghost`,size:`icon-sm`,className:`cursor-pointer text-muted-foreground hover:text-foreground`,children:(0,A.jsx)(ee,{className:`h-4 w-4`})})})]}),(0,A.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-0 lg:grid-cols-[22rem_minmax(0,1fr)]`,children:[(0,A.jsx)(ye,{activeSelectionKind:J,activeSelectionName:Se,activeSelectionPath:xe,availableCommands:h,canRunGranular:De,discovery:S,expandedFiles:E,fullSuiteOnlyNotice:we,isLoading:D,selectedCommandId:w,selectedCommandName:Z?.name??null,sessionError:I,sessionStatus:X,shouldShowCommandSelector:Oe,onRunCase:Fe,onRunFile:Pe,onSelectCommand:Me,onToggleFile:Ne}),(0,A.jsx)(be,{durationMs:_?.duration_ms??null,output:_?.output??``,outputTruncated:_?.output_truncated??!1,selectionLabel:_e(_),status:X,summaryCounts:Ce,viewportRef:U,onScroll:je})]}),(0,A.jsx)(ie,{className:`border-t border-border/70 px-6 py-4 sm:flex-row sm:items-center sm:justify-end`,children:(0,A.jsx)(`div`,{className:`flex items-center justify-end gap-2`,children:_?.status===`running`?(0,A.jsxs)(r,{type:`button`,variant:`destructive`,className:ve,onClick:()=>{ke()},disabled:N,children:[(0,A.jsx)(x,{className:`h-4 w-4`}),(0,A.jsx)(`span`,{children:P(`actions.stop`)})]}):(0,A.jsxs)(r,{type:`button`,variant:`success`,className:ve,disabled:!Ee,onClick:()=>{Q({kind:`all`})},children:[(0,A.jsx)(te,{className:`h-4 w-4`}),(0,A.jsx)(`span`,{children:P(`actions.run`)})]})})})]})}),(0,A.jsx)(m,{open:ge,onOpenChange:R,children:(0,A.jsxs)(u,{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,A.jsxs)(d,{children:[(0,A.jsx)(i,{className:`text-sm font-semibold uppercase tracking-widest text-muted-foreground`,children:P(`closeConfirmation.title`)}),(0,A.jsx)(n,{className:`text-sm text-foreground whitespace-pre-line`,children:P(`closeConfirmation.description`)})]}),(0,A.jsxs)(ie,{className:`sm:flex-row sm:justify-end`,children:[(0,A.jsx)(r,{type:`button`,variant:`ghost`,onClick:()=>R(!1),children:P(`closeConfirmation.keepRunning`)}),(0,A.jsx)(r,{type:`button`,variant:`destructive`,onClick:()=>{R(!1),$()},children:P(`closeConfirmation.stopAndClose`)})]})]})})]})};export{xe as TestsDialog};
@@ -1 +0,0 @@
1
- import"./chunk-NNHCCRGN-C4ci-Gd6.js";import{n as e}from"./chunk-4EGX6M5U-DTB6Um9X.js";export{e as createArchitectureServices};
@@ -1 +0,0 @@
1
- import{at as e,ot as t}from"./chunk-CSCIHK7Q-BmXd8_5X.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-BcaL9nCM.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-BcaL9nCM.js";import{x as n}from"./chunk-CSCIHK7Q-BmXd8_5X.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-BcaL9nCM.js";import"./chunk-CSCIHK7Q-BmXd8_5X.js";import"./chunk-5ZQYHXKU-mt5W2CGF.js";import"./chunk-O5CBEL6O-BX5VWTmZ.js";import"./chunk-FMBD7UC4-mGY2D2YB.js";import"./chunk-BSJP7CBP-X4eyoSqE.js";import"./chunk-L5ZTLDWV-CRVFCsvJ.js";import"./chunk-ND2GUHAM-BYAb7NsA.js";import"./chunk-55IACEB6-BB-0ajVZ.js";import"./chunk-2J33WTMH-Dh6TqsDY.js";import"./chunk-NZK2D7GU-DUI0mwZm.js";import"./chunk-3OPIFGDE-BI6L9trS.js";import"./chunk-KSCS5N6A-DJIqk8ji.js";import"./chunk-LZXEDZCA-CRla8IXQ.js";import{i as t,n,r,t as i}from"./chunk-727SXJPM-D7IvpFAq.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-BcaL9nCM.js";import"./chunk-CSCIHK7Q-BmXd8_5X.js";import"./chunk-5ZQYHXKU-mt5W2CGF.js";import"./chunk-O5CBEL6O-BX5VWTmZ.js";import"./chunk-FMBD7UC4-mGY2D2YB.js";import"./chunk-BSJP7CBP-X4eyoSqE.js";import"./chunk-L5ZTLDWV-CRVFCsvJ.js";import"./chunk-ND2GUHAM-BYAb7NsA.js";import"./chunk-55IACEB6-BB-0ajVZ.js";import"./chunk-2J33WTMH-Dh6TqsDY.js";import"./chunk-NZK2D7GU-DUI0mwZm.js";import"./chunk-3OPIFGDE-BI6L9trS.js";import"./chunk-KSCS5N6A-DJIqk8ji.js";import"./chunk-LZXEDZCA-CRla8IXQ.js";import{i as t,n,r,t as i}from"./chunk-727SXJPM-D7IvpFAq.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-C4ci-Gd6.js";import{n as e}from"./chunk-N66VUXT2-Bpe4yprw.js";export{e as createEventModelingServices};
@@ -1 +0,0 @@
1
- import"./chunk-NNHCCRGN-C4ci-Gd6.js";import{n as e}from"./chunk-UIBZB4QT-Cp2xSKlH.js";export{e as createGitGraphServices};