@coralai/sps-cli 0.6.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 (145) hide show
  1. package/dist/commands/cardAdd.d.ts +2 -0
  2. package/dist/commands/cardAdd.d.ts.map +1 -0
  3. package/dist/commands/cardAdd.js +65 -0
  4. package/dist/commands/cardAdd.js.map +1 -0
  5. package/dist/commands/doctor.d.ts +9 -0
  6. package/dist/commands/doctor.d.ts.map +1 -0
  7. package/dist/commands/doctor.js +264 -0
  8. package/dist/commands/doctor.js.map +1 -0
  9. package/dist/commands/monitorTick.d.ts +2 -0
  10. package/dist/commands/monitorTick.d.ts.map +1 -0
  11. package/dist/commands/monitorTick.js +47 -0
  12. package/dist/commands/monitorTick.js.map +1 -0
  13. package/dist/commands/pipelineTick.d.ts +2 -0
  14. package/dist/commands/pipelineTick.d.ts.map +1 -0
  15. package/dist/commands/pipelineTick.js +44 -0
  16. package/dist/commands/pipelineTick.js.map +1 -0
  17. package/dist/commands/pmCommand.d.ts +2 -0
  18. package/dist/commands/pmCommand.d.ts.map +1 -0
  19. package/dist/commands/pmCommand.js +159 -0
  20. package/dist/commands/pmCommand.js.map +1 -0
  21. package/dist/commands/projectInit.d.ts +2 -0
  22. package/dist/commands/projectInit.d.ts.map +1 -0
  23. package/dist/commands/projectInit.js +75 -0
  24. package/dist/commands/projectInit.js.map +1 -0
  25. package/dist/commands/qaTick.d.ts +2 -0
  26. package/dist/commands/qaTick.d.ts.map +1 -0
  27. package/dist/commands/qaTick.js +43 -0
  28. package/dist/commands/qaTick.js.map +1 -0
  29. package/dist/commands/schedulerTick.d.ts +2 -0
  30. package/dist/commands/schedulerTick.d.ts.map +1 -0
  31. package/dist/commands/schedulerTick.js +45 -0
  32. package/dist/commands/schedulerTick.js.map +1 -0
  33. package/dist/commands/tick.d.ts +14 -0
  34. package/dist/commands/tick.d.ts.map +1 -0
  35. package/dist/commands/tick.js +251 -0
  36. package/dist/commands/tick.js.map +1 -0
  37. package/dist/commands/workerLaunch.d.ts +2 -0
  38. package/dist/commands/workerLaunch.d.ts.map +1 -0
  39. package/dist/commands/workerLaunch.js +56 -0
  40. package/dist/commands/workerLaunch.js.map +1 -0
  41. package/dist/core/config.d.ts +38 -0
  42. package/dist/core/config.d.ts.map +1 -0
  43. package/dist/core/config.js +131 -0
  44. package/dist/core/config.js.map +1 -0
  45. package/dist/core/context.d.ts +23 -0
  46. package/dist/core/context.d.ts.map +1 -0
  47. package/dist/core/context.js +28 -0
  48. package/dist/core/context.js.map +1 -0
  49. package/dist/core/lock.d.ts +14 -0
  50. package/dist/core/lock.d.ts.map +1 -0
  51. package/dist/core/lock.js +65 -0
  52. package/dist/core/lock.js.map +1 -0
  53. package/dist/core/logger.d.ts +24 -0
  54. package/dist/core/logger.d.ts.map +1 -0
  55. package/dist/core/logger.js +62 -0
  56. package/dist/core/logger.js.map +1 -0
  57. package/dist/core/paths.d.ts +27 -0
  58. package/dist/core/paths.d.ts.map +1 -0
  59. package/dist/core/paths.js +29 -0
  60. package/dist/core/paths.js.map +1 -0
  61. package/dist/core/queue.d.ts +14 -0
  62. package/dist/core/queue.d.ts.map +1 -0
  63. package/dist/core/queue.js +38 -0
  64. package/dist/core/queue.js.map +1 -0
  65. package/dist/core/state.d.ts +32 -0
  66. package/dist/core/state.d.ts.map +1 -0
  67. package/dist/core/state.js +52 -0
  68. package/dist/core/state.js.map +1 -0
  69. package/dist/engines/CloseoutEngine.d.ts +60 -0
  70. package/dist/engines/CloseoutEngine.d.ts.map +1 -0
  71. package/dist/engines/CloseoutEngine.js +596 -0
  72. package/dist/engines/CloseoutEngine.js.map +1 -0
  73. package/dist/engines/ExecutionEngine.d.ts +65 -0
  74. package/dist/engines/ExecutionEngine.d.ts.map +1 -0
  75. package/dist/engines/ExecutionEngine.js +603 -0
  76. package/dist/engines/ExecutionEngine.js.map +1 -0
  77. package/dist/engines/MonitorEngine.d.ts +39 -0
  78. package/dist/engines/MonitorEngine.d.ts.map +1 -0
  79. package/dist/engines/MonitorEngine.js +473 -0
  80. package/dist/engines/MonitorEngine.js.map +1 -0
  81. package/dist/engines/SchedulerEngine.d.ts +24 -0
  82. package/dist/engines/SchedulerEngine.d.ts.map +1 -0
  83. package/dist/engines/SchedulerEngine.js +195 -0
  84. package/dist/engines/SchedulerEngine.js.map +1 -0
  85. package/dist/interfaces/HookProvider.d.ts +9 -0
  86. package/dist/interfaces/HookProvider.d.ts.map +1 -0
  87. package/dist/interfaces/HookProvider.js +2 -0
  88. package/dist/interfaces/HookProvider.js.map +1 -0
  89. package/dist/interfaces/Notifier.d.ts +11 -0
  90. package/dist/interfaces/Notifier.d.ts.map +1 -0
  91. package/dist/interfaces/Notifier.js +2 -0
  92. package/dist/interfaces/Notifier.js.map +1 -0
  93. package/dist/interfaces/RepoBackend.d.ts +23 -0
  94. package/dist/interfaces/RepoBackend.d.ts.map +1 -0
  95. package/dist/interfaces/RepoBackend.js +2 -0
  96. package/dist/interfaces/RepoBackend.js.map +1 -0
  97. package/dist/interfaces/TaskBackend.d.ts +24 -0
  98. package/dist/interfaces/TaskBackend.d.ts.map +1 -0
  99. package/dist/interfaces/TaskBackend.js +2 -0
  100. package/dist/interfaces/TaskBackend.js.map +1 -0
  101. package/dist/interfaces/WorkerProvider.d.ts +23 -0
  102. package/dist/interfaces/WorkerProvider.d.ts.map +1 -0
  103. package/dist/interfaces/WorkerProvider.js +2 -0
  104. package/dist/interfaces/WorkerProvider.js.map +1 -0
  105. package/dist/main.d.ts +3 -0
  106. package/dist/main.d.ts.map +1 -0
  107. package/dist/main.js +226 -0
  108. package/dist/main.js.map +1 -0
  109. package/dist/models/types.d.ts +68 -0
  110. package/dist/models/types.d.ts.map +1 -0
  111. package/dist/models/types.js +2 -0
  112. package/dist/models/types.js.map +1 -0
  113. package/dist/providers/ClaudeWorkerProvider.d.ts +84 -0
  114. package/dist/providers/ClaudeWorkerProvider.d.ts.map +1 -0
  115. package/dist/providers/ClaudeWorkerProvider.js +293 -0
  116. package/dist/providers/ClaudeWorkerProvider.js.map +1 -0
  117. package/dist/providers/CodexWorkerProvider.d.ts +50 -0
  118. package/dist/providers/CodexWorkerProvider.d.ts.map +1 -0
  119. package/dist/providers/CodexWorkerProvider.js +275 -0
  120. package/dist/providers/CodexWorkerProvider.js.map +1 -0
  121. package/dist/providers/GitLabRepoBackend.d.ts +42 -0
  122. package/dist/providers/GitLabRepoBackend.d.ts.map +1 -0
  123. package/dist/providers/GitLabRepoBackend.js +280 -0
  124. package/dist/providers/GitLabRepoBackend.js.map +1 -0
  125. package/dist/providers/MarkdownTaskBackend.d.ts +88 -0
  126. package/dist/providers/MarkdownTaskBackend.d.ts.map +1 -0
  127. package/dist/providers/MarkdownTaskBackend.js +414 -0
  128. package/dist/providers/MarkdownTaskBackend.js.map +1 -0
  129. package/dist/providers/MatrixNotifier.d.ts +30 -0
  130. package/dist/providers/MatrixNotifier.d.ts.map +1 -0
  131. package/dist/providers/MatrixNotifier.js +82 -0
  132. package/dist/providers/MatrixNotifier.js.map +1 -0
  133. package/dist/providers/PlaneTaskBackend.d.ts +86 -0
  134. package/dist/providers/PlaneTaskBackend.d.ts.map +1 -0
  135. package/dist/providers/PlaneTaskBackend.js +409 -0
  136. package/dist/providers/PlaneTaskBackend.js.map +1 -0
  137. package/dist/providers/TrelloTaskBackend.d.ts +53 -0
  138. package/dist/providers/TrelloTaskBackend.d.ts.map +1 -0
  139. package/dist/providers/TrelloTaskBackend.js +300 -0
  140. package/dist/providers/TrelloTaskBackend.js.map +1 -0
  141. package/dist/providers/registry.d.ts +10 -0
  142. package/dist/providers/registry.d.ts.map +1 -0
  143. package/dist/providers/registry.js +29 -0
  144. package/dist/providers/registry.js.map +1 -0
  145. package/package.json +36 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionEngine.js","sourceRoot":"","sources":["../../src/engines/ExecutionEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { ProjectContext } from '../core/context.js';
2
+ import type { TaskBackend } from '../interfaces/TaskBackend.js';
3
+ import type { RepoBackend } from '../interfaces/RepoBackend.js';
4
+ import type { WorkerProvider } from '../interfaces/WorkerProvider.js';
5
+ import type { Notifier } from '../interfaces/Notifier.js';
6
+ import type { CommandResult } from '../models/types.js';
7
+ /**
8
+ * MonitorEngine performs anomaly detection and health checks.
9
+ *
10
+ * Checks (in order):
11
+ * 1. Orphan slot cleanup (doc 12 §6.1)
12
+ * 2. Stale runtime detection (01 §10.2.3)
13
+ * 3. Timeout detection (01 §10.2.4)
14
+ * 4. Waiting confirmation detection (doc 12 §3)
15
+ * 5. BLOCKED condition check (01 §3.6.1)
16
+ * 6. State alignment (07 §2.1)
17
+ */
18
+ export declare class MonitorEngine {
19
+ private ctx;
20
+ private taskBackend;
21
+ private workerProvider;
22
+ private repoBackend;
23
+ private notifier?;
24
+ private log;
25
+ constructor(ctx: ProjectContext, taskBackend: TaskBackend, workerProvider: WorkerProvider, repoBackend: RepoBackend, notifier?: Notifier | undefined);
26
+ tick(): Promise<CommandResult>;
27
+ private checkOrphanSlots;
28
+ private checkStaleRuntimes;
29
+ private handleStaleRuntime;
30
+ private checkTimeouts;
31
+ private checkWaitingConfirmation;
32
+ private checkBlockedCards;
33
+ private checkStateAlignment;
34
+ private buildBranchName;
35
+ private addLabelSafe;
36
+ private notifySafe;
37
+ private logEvent;
38
+ }
39
+ //# sourceMappingURL=MonitorEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonitorEngine.d.ts","sourceRoot":"","sources":["../../src/engines/MonitorEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAgD,MAAM,oBAAoB,CAAC;AAItG;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IAItB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ,CAAC;IAPnB,OAAO,CAAC,GAAG,CAAS;gBAGV,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,QAAQ,YAAA;IAKvB,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;YAkDtB,gBAAgB;YAuEhB,kBAAkB;YA8ElB,kBAAkB;YAwDlB,aAAa;YA0Eb,wBAAwB;YAmFxB,iBAAiB;YA8BjB,mBAAmB;IAiDjC,OAAO,CAAC,eAAe;YAST,YAAY;YASZ,UAAU;IAYxB,OAAO,CAAC,QAAQ;CAcjB"}
@@ -0,0 +1,473 @@
1
+ import { readState, writeState } from '../core/state.js';
2
+ import { Logger } from '../core/logger.js';
3
+ /**
4
+ * MonitorEngine performs anomaly detection and health checks.
5
+ *
6
+ * Checks (in order):
7
+ * 1. Orphan slot cleanup (doc 12 §6.1)
8
+ * 2. Stale runtime detection (01 §10.2.3)
9
+ * 3. Timeout detection (01 §10.2.4)
10
+ * 4. Waiting confirmation detection (doc 12 §3)
11
+ * 5. BLOCKED condition check (01 §3.6.1)
12
+ * 6. State alignment (07 §2.1)
13
+ */
14
+ export class MonitorEngine {
15
+ ctx;
16
+ taskBackend;
17
+ workerProvider;
18
+ repoBackend;
19
+ notifier;
20
+ log;
21
+ constructor(ctx, taskBackend, workerProvider, repoBackend, notifier) {
22
+ this.ctx = ctx;
23
+ this.taskBackend = taskBackend;
24
+ this.workerProvider = workerProvider;
25
+ this.repoBackend = repoBackend;
26
+ this.notifier = notifier;
27
+ this.log = new Logger('monitor', ctx.projectName, ctx.paths.logsDir);
28
+ }
29
+ async tick() {
30
+ const actions = [];
31
+ const checks = [];
32
+ const recommendedActions = [];
33
+ const result = {
34
+ project: this.ctx.projectName,
35
+ component: 'monitor',
36
+ status: 'ok',
37
+ exitCode: 0,
38
+ actions,
39
+ recommendedActions,
40
+ details: { checks },
41
+ };
42
+ try {
43
+ // 1. Orphan slot cleanup
44
+ await this.checkOrphanSlots(checks, actions);
45
+ // 2. Stale runtime detection
46
+ await this.checkStaleRuntimes(checks, actions, recommendedActions);
47
+ // 3. Timeout detection
48
+ await this.checkTimeouts(checks, actions, recommendedActions);
49
+ // 4. Waiting confirmation detection
50
+ await this.checkWaitingConfirmation(checks, actions);
51
+ // 5. BLOCKED condition check
52
+ await this.checkBlockedCards(checks);
53
+ // 6. State alignment
54
+ await this.checkStateAlignment(checks, recommendedActions);
55
+ }
56
+ catch (err) {
57
+ const msg = err instanceof Error ? err.message : String(err);
58
+ this.log.error(`Monitor tick failed: ${msg}`);
59
+ result.status = 'fail';
60
+ result.exitCode = 1;
61
+ result.details = { error: msg, checks };
62
+ }
63
+ // Set degraded if any checks failed
64
+ if (checks.some((c) => c.status === 'fail') && result.status === 'ok') {
65
+ result.status = 'degraded';
66
+ }
67
+ return result;
68
+ }
69
+ // ─── Check 1: Orphan Slot Cleanup (doc 12 §6.1) ───────────────
70
+ async checkOrphanSlots(checks, actions) {
71
+ const state = readState(this.ctx.paths.stateFile, this.ctx.maxWorkers);
72
+ let orphansFound = 0;
73
+ for (const [slotName, slotState] of Object.entries(state.workers)) {
74
+ if (slotState.status !== 'active' || !slotState.tmuxSession)
75
+ continue;
76
+ try {
77
+ const inspection = await this.workerProvider.inspect(slotState.tmuxSession);
78
+ if (!inspection.alive) {
79
+ // Session dead but slot still active → orphan
80
+ this.log.warn(`Orphan slot ${slotName}: session ${slotState.tmuxSession} is dead, releasing`);
81
+ state.workers[slotName] = {
82
+ status: 'idle',
83
+ seq: null,
84
+ branch: null,
85
+ worktree: null,
86
+ tmuxSession: null,
87
+ claimedAt: null,
88
+ lastHeartbeat: null,
89
+ };
90
+ // Remove from active cards if present
91
+ if (slotState.seq != null) {
92
+ delete state.activeCards[String(slotState.seq)];
93
+ }
94
+ orphansFound++;
95
+ actions.push({
96
+ action: 'orphan-cleanup',
97
+ entity: `slot:${slotName}`,
98
+ result: 'ok',
99
+ message: `Released orphan slot (session ${slotState.tmuxSession} dead)`,
100
+ });
101
+ this.logEvent('orphan-cleanup', slotName, 'ok', {
102
+ session: slotState.tmuxSession,
103
+ seq: slotState.seq,
104
+ });
105
+ }
106
+ }
107
+ catch (err) {
108
+ const msg = err instanceof Error ? err.message : String(err);
109
+ this.log.warn(`Failed to inspect session ${slotState.tmuxSession}: ${msg}`);
110
+ }
111
+ }
112
+ if (orphansFound > 0) {
113
+ try {
114
+ writeState(this.ctx.paths.stateFile, state, 'monitor-orphan-cleanup');
115
+ }
116
+ catch (err) {
117
+ const msg = err instanceof Error ? err.message : String(err);
118
+ this.log.error(`Failed to write state after orphan cleanup: ${msg}`);
119
+ }
120
+ }
121
+ checks.push({
122
+ name: 'orphan-slots',
123
+ status: orphansFound > 0 ? 'warn' : 'pass',
124
+ message: orphansFound > 0
125
+ ? `Released ${orphansFound} orphan slot(s)`
126
+ : 'No orphan slots detected',
127
+ });
128
+ }
129
+ // ─── Check 2: Stale Runtime Detection (01 §10.2.3) ────────────
130
+ async checkStaleRuntimes(checks, actions, recommendedActions) {
131
+ const inprogressCards = await this.taskBackend.listByState('Inprogress');
132
+ let staleCount = 0;
133
+ for (const card of inprogressCards) {
134
+ // Skip cards already marked
135
+ if (card.labels.includes('STALE-RUNTIME'))
136
+ continue;
137
+ const state = readState(this.ctx.paths.stateFile, this.ctx.maxWorkers);
138
+ const slotEntry = Object.entries(state.workers).find(([, w]) => w.seq === parseInt(card.seq, 10));
139
+ if (!slotEntry) {
140
+ // No worker slot for this card — it's stale
141
+ this.log.warn(`seq ${card.seq}: Inprogress but no worker slot assigned`);
142
+ await this.handleStaleRuntime(card, actions, recommendedActions);
143
+ staleCount++;
144
+ continue;
145
+ }
146
+ const [, slotState] = slotEntry;
147
+ if (!slotState.tmuxSession)
148
+ continue;
149
+ try {
150
+ const inspection = await this.workerProvider.inspect(slotState.tmuxSession);
151
+ if (!inspection.alive) {
152
+ // Session dead + card still Inprogress
153
+ const branchName = slotState.branch || this.buildBranchName(card);
154
+ const mrStatus = await this.repoBackend.getMrStatus(branchName);
155
+ if (mrStatus.exists) {
156
+ // Dead session + MR exists → stale runtime
157
+ this.log.warn(`seq ${card.seq}: Worker session dead but MR exists — stale runtime`);
158
+ await this.handleStaleRuntime(card, actions, recommendedActions);
159
+ staleCount++;
160
+ }
161
+ else {
162
+ // Dead session + no MR → worker died before completing
163
+ this.log.warn(`seq ${card.seq}: Worker session dead, no MR found`);
164
+ await this.addLabelSafe(card.seq, 'STALE-RUNTIME');
165
+ actions.push({
166
+ action: 'mark-stale',
167
+ entity: `seq:${card.seq}`,
168
+ result: 'ok',
169
+ message: 'Worker dead, no MR — needs manual review',
170
+ });
171
+ recommendedActions.push({
172
+ action: `Review seq:${card.seq} — worker died without creating MR`,
173
+ reason: 'Worker session dead with no MR',
174
+ severity: 'warning',
175
+ autoExecutable: false,
176
+ requiresConfirmation: true,
177
+ safeToRetry: false,
178
+ });
179
+ staleCount++;
180
+ }
181
+ }
182
+ }
183
+ catch (err) {
184
+ const msg = err instanceof Error ? err.message : String(err);
185
+ this.log.warn(`Failed to inspect session for seq ${card.seq}: ${msg}`);
186
+ }
187
+ }
188
+ checks.push({
189
+ name: 'stale-runtimes',
190
+ status: staleCount > 0 ? 'warn' : 'pass',
191
+ message: staleCount > 0
192
+ ? `Detected ${staleCount} stale runtime(s)`
193
+ : 'No stale runtimes detected',
194
+ });
195
+ }
196
+ async handleStaleRuntime(card, actions, recommendedActions) {
197
+ const seq = card.seq;
198
+ await this.addLabelSafe(seq, 'STALE-RUNTIME');
199
+ if (this.ctx.config.MONITOR_AUTO_QA) {
200
+ // Auto-move to QA
201
+ try {
202
+ await this.taskBackend.move(seq, 'QA');
203
+ this.log.ok(`seq ${seq}: Auto-moved to QA (MONITOR_AUTO_QA=true)`);
204
+ actions.push({
205
+ action: 'auto-qa',
206
+ entity: `seq:${seq}`,
207
+ result: 'ok',
208
+ message: 'Stale runtime — auto-moved to QA',
209
+ });
210
+ this.logEvent('auto-qa', seq, 'ok');
211
+ await this.notifySafe(`seq:${seq} auto-moved to QA (stale runtime)`, 'warning');
212
+ }
213
+ catch (err) {
214
+ const msg = err instanceof Error ? err.message : String(err);
215
+ this.log.error(`seq ${seq}: Failed to auto-move to QA: ${msg}`);
216
+ actions.push({
217
+ action: 'auto-qa',
218
+ entity: `seq:${seq}`,
219
+ result: 'fail',
220
+ message: `Auto-QA failed: ${msg}`,
221
+ });
222
+ }
223
+ }
224
+ else {
225
+ // Notify, wait for human
226
+ await this.notifySafe(`seq:${seq} has a stale runtime — worker session dead but MR may exist`, 'warning');
227
+ recommendedActions.push({
228
+ action: `Move seq:${seq} to QA or investigate stale runtime`,
229
+ reason: 'Worker session dead, MONITOR_AUTO_QA is disabled',
230
+ severity: 'warning',
231
+ autoExecutable: true,
232
+ requiresConfirmation: true,
233
+ safeToRetry: true,
234
+ });
235
+ actions.push({
236
+ action: 'mark-stale',
237
+ entity: `seq:${seq}`,
238
+ result: 'ok',
239
+ message: 'Stale runtime detected, awaiting manual review',
240
+ });
241
+ }
242
+ }
243
+ // ─── Check 3: Timeout Detection (01 §10.2.4) ──────────────────
244
+ async checkTimeouts(checks, actions, recommendedActions) {
245
+ const state = readState(this.ctx.paths.stateFile, this.ctx.maxWorkers);
246
+ const timeoutHours = this.ctx.config.INPROGRESS_TIMEOUT_HOURS;
247
+ const now = Date.now();
248
+ let timeoutCount = 0;
249
+ for (const [seq, activeCard] of Object.entries(state.activeCards)) {
250
+ if (activeCard.state !== 'Inprogress')
251
+ continue;
252
+ const startTime = new Date(activeCard.startedAt).getTime();
253
+ const elapsedHours = (now - startTime) / (1000 * 60 * 60);
254
+ if (elapsedHours <= timeoutHours)
255
+ continue;
256
+ // Check for recent heartbeat
257
+ const slotEntry = Object.entries(state.workers).find(([, w]) => w.seq === parseInt(seq, 10));
258
+ if (slotEntry) {
259
+ const [, slotState] = slotEntry;
260
+ if (slotState.lastHeartbeat) {
261
+ const hbTime = new Date(slotState.lastHeartbeat).getTime();
262
+ const hbAge = (now - hbTime) / (1000 * 60 * 60);
263
+ // If heartbeat is recent (within timeout window), skip
264
+ if (hbAge < timeoutHours)
265
+ continue;
266
+ }
267
+ }
268
+ // Timed out
269
+ this.log.warn(`seq ${seq}: Timed out (${elapsedHours.toFixed(1)}h > ${timeoutHours}h threshold)`);
270
+ await this.addLabelSafe(seq, 'STALE-RUNTIME');
271
+ await this.notifySafe(`seq:${seq} has exceeded timeout (${elapsedHours.toFixed(1)}h)`, 'warning');
272
+ timeoutCount++;
273
+ actions.push({
274
+ action: 'mark-timeout',
275
+ entity: `seq:${seq}`,
276
+ result: 'ok',
277
+ message: `Timed out after ${elapsedHours.toFixed(1)}h (limit: ${timeoutHours}h)`,
278
+ });
279
+ recommendedActions.push({
280
+ action: `Investigate timeout for seq:${seq}`,
281
+ reason: `Exceeded INPROGRESS_TIMEOUT_HOURS (${elapsedHours.toFixed(1)}h > ${timeoutHours}h)`,
282
+ severity: 'warning',
283
+ autoExecutable: false,
284
+ requiresConfirmation: true,
285
+ safeToRetry: true,
286
+ });
287
+ this.logEvent('timeout', seq, 'ok', {
288
+ elapsedHours: parseFloat(elapsedHours.toFixed(1)),
289
+ threshold: timeoutHours,
290
+ });
291
+ }
292
+ checks.push({
293
+ name: 'timeouts',
294
+ status: timeoutCount > 0 ? 'warn' : 'pass',
295
+ message: timeoutCount > 0
296
+ ? `${timeoutCount} card(s) exceeded timeout`
297
+ : 'No timeouts detected',
298
+ });
299
+ }
300
+ // ─── Check 4: Waiting Confirmation Detection (doc 12 §3) ──────
301
+ async checkWaitingConfirmation(checks, actions) {
302
+ const state = readState(this.ctx.paths.stateFile, this.ctx.maxWorkers);
303
+ let waitingCount = 0;
304
+ for (const [slotName, slotState] of Object.entries(state.workers)) {
305
+ if (slotState.status !== 'active' || !slotState.tmuxSession)
306
+ continue;
307
+ try {
308
+ const waitResult = await this.workerProvider.detectWaiting(slotState.tmuxSession);
309
+ if (!waitResult.waiting)
310
+ continue;
311
+ const seq = slotState.seq != null ? String(slotState.seq) : slotName;
312
+ if (!waitResult.destructive) {
313
+ // Non-destructive prompt → auto-confirm
314
+ this.log.info(`seq ${seq}: Worker waiting for non-destructive confirmation, auto-confirming`);
315
+ try {
316
+ // Send Enter/y to confirm
317
+ await this.workerProvider.sendFix(slotState.tmuxSession, 'y');
318
+ actions.push({
319
+ action: 'auto-confirm',
320
+ entity: `seq:${seq}`,
321
+ result: 'ok',
322
+ message: `Auto-confirmed: ${waitResult.prompt}`,
323
+ });
324
+ this.logEvent('auto-confirm', seq, 'ok', { prompt: waitResult.prompt });
325
+ }
326
+ catch (err) {
327
+ const msg = err instanceof Error ? err.message : String(err);
328
+ this.log.warn(`Failed to auto-confirm for seq ${seq}: ${msg}`);
329
+ actions.push({
330
+ action: 'auto-confirm',
331
+ entity: `seq:${seq}`,
332
+ result: 'fail',
333
+ message: `Auto-confirm failed: ${msg}`,
334
+ });
335
+ }
336
+ }
337
+ else {
338
+ // Destructive prompt → label + notify
339
+ this.log.warn(`seq ${seq}: Worker waiting for destructive confirmation: ${waitResult.prompt}`);
340
+ if (slotState.seq != null) {
341
+ await this.addLabelSafe(String(slotState.seq), 'WAITING-CONFIRMATION');
342
+ }
343
+ await this.notifySafe(`seq:${seq} waiting for destructive confirmation: ${waitResult.prompt}`, 'warning');
344
+ actions.push({
345
+ action: 'mark-waiting',
346
+ entity: `seq:${seq}`,
347
+ result: 'ok',
348
+ message: `Waiting for destructive confirmation: ${waitResult.prompt}`,
349
+ });
350
+ this.logEvent('waiting-confirmation', seq, 'ok', {
351
+ destructive: true,
352
+ prompt: waitResult.prompt,
353
+ });
354
+ }
355
+ waitingCount++;
356
+ }
357
+ catch (err) {
358
+ const msg = err instanceof Error ? err.message : String(err);
359
+ this.log.debug(`Failed to detect waiting for ${slotName}: ${msg}`);
360
+ }
361
+ }
362
+ checks.push({
363
+ name: 'waiting-confirmation',
364
+ status: waitingCount > 0 ? 'warn' : 'pass',
365
+ message: waitingCount > 0
366
+ ? `${waitingCount} worker(s) waiting for confirmation`
367
+ : 'No workers waiting for confirmation',
368
+ });
369
+ }
370
+ // ─── Check 5: BLOCKED Condition Check (01 §3.6.1) ─────────────
371
+ async checkBlockedCards(checks) {
372
+ // Collect cards from all active states that might have BLOCKED label
373
+ const states = ['Backlog', 'Todo', 'Inprogress', 'QA'];
374
+ let blockedCount = 0;
375
+ for (const cardState of states) {
376
+ try {
377
+ const cards = await this.taskBackend.listByState(cardState);
378
+ for (const card of cards) {
379
+ if (card.labels.includes('BLOCKED')) {
380
+ this.log.info(`seq ${card.seq}: BLOCKED in ${cardState}`);
381
+ blockedCount++;
382
+ }
383
+ }
384
+ }
385
+ catch {
386
+ // Non-fatal: skip this state
387
+ }
388
+ }
389
+ checks.push({
390
+ name: 'blocked-cards',
391
+ status: blockedCount > 0 ? 'warn' : 'pass',
392
+ message: blockedCount > 0
393
+ ? `${blockedCount} card(s) are BLOCKED`
394
+ : 'No blocked cards',
395
+ });
396
+ }
397
+ // ─── Check 6: State Alignment (07 §2.1) ───────────────────────
398
+ async checkStateAlignment(checks, recommendedActions) {
399
+ const state = readState(this.ctx.paths.stateFile, this.ctx.maxWorkers);
400
+ const discrepancies = [];
401
+ for (const [slotName, slotState] of Object.entries(state.workers)) {
402
+ if (slotState.status !== 'active' || !slotState.tmuxSession)
403
+ continue;
404
+ try {
405
+ const inspection = await this.workerProvider.inspect(slotState.tmuxSession);
406
+ if (!inspection.alive) {
407
+ discrepancies.push(`${slotName}: state says active but session ${slotState.tmuxSession} is dead`);
408
+ }
409
+ }
410
+ catch {
411
+ discrepancies.push(`${slotName}: could not inspect session ${slotState.tmuxSession}`);
412
+ }
413
+ }
414
+ if (discrepancies.length > 0) {
415
+ for (const d of discrepancies) {
416
+ this.log.warn(`State alignment: ${d}`);
417
+ }
418
+ recommendedActions.push({
419
+ action: 'Investigate state alignment discrepancies',
420
+ reason: discrepancies.join('; '),
421
+ severity: 'warning',
422
+ autoExecutable: false,
423
+ requiresConfirmation: true,
424
+ safeToRetry: true,
425
+ });
426
+ }
427
+ checks.push({
428
+ name: 'state-alignment',
429
+ status: discrepancies.length > 0 ? 'warn' : 'pass',
430
+ message: discrepancies.length > 0
431
+ ? `${discrepancies.length} state alignment discrepancy(ies)`
432
+ : 'State aligned with runtime',
433
+ });
434
+ }
435
+ // ─── Helpers ───────────────────────────────────────────────────
436
+ buildBranchName(card) {
437
+ const slug = card.name
438
+ .toLowerCase()
439
+ .replace(/[^a-z0-9]+/g, '-')
440
+ .replace(/^-|-$/g, '')
441
+ .slice(0, 40);
442
+ return `feature/${card.seq}-${slug}`;
443
+ }
444
+ async addLabelSafe(seq, label) {
445
+ try {
446
+ await this.taskBackend.addLabel(seq, label);
447
+ }
448
+ catch (err) {
449
+ const msg = err instanceof Error ? err.message : String(err);
450
+ this.log.error(`Failed to add label ${label} to seq ${seq}: ${msg}`);
451
+ }
452
+ }
453
+ async notifySafe(message, level) {
454
+ if (!this.notifier)
455
+ return;
456
+ try {
457
+ await this.notifier.send(`[${this.ctx.projectName}] ${message}`, level);
458
+ }
459
+ catch {
460
+ // Notification failures are never fatal
461
+ }
462
+ }
463
+ logEvent(action, entity, result, meta) {
464
+ this.log.event({
465
+ component: 'monitor',
466
+ action,
467
+ entity: entity.includes(':') ? entity : `seq:${entity}`,
468
+ result,
469
+ meta,
470
+ });
471
+ }
472
+ }
473
+ //# sourceMappingURL=MonitorEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonitorEngine.js","sourceRoot":"","sources":["../../src/engines/MonitorEngine.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IAId;IACA;IACA;IACA;IACA;IAPF,GAAG,CAAS;IAEpB,YACU,GAAmB,EACnB,WAAwB,EACxB,cAA8B,EAC9B,WAAwB,EACxB,QAAmB;QAJnB,QAAG,GAAH,GAAG,CAAgB;QACnB,gBAAW,GAAX,WAAW,CAAa;QACxB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,gBAAW,GAAX,WAAW,CAAa;QACxB,aAAQ,GAAR,QAAQ,CAAW;QAE3B,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,MAAM,kBAAkB,GAAwB,EAAE,CAAC;QACnD,MAAM,MAAM,GAAkB;YAC5B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW;YAC7B,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,CAAC;YACX,OAAO;YACP,kBAAkB;YAClB,OAAO,EAAE,EAAE,MAAM,EAAE;SACpB,CAAC;QAEF,IAAI,CAAC;YACH,yBAAyB;YACzB,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAE7C,6BAA6B;YAC7B,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAEnE,uBAAuB;YACvB,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAE9D,oCAAoC;YACpC,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAErD,6BAA6B;YAC7B,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAErC,qBAAqB;YACrB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpB,MAAM,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAC1C,CAAC;QAED,oCAAoC;QACpC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACtE,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iEAAiE;IAEzD,KAAK,CAAC,gBAAgB,CAC5B,MAAqB,EACrB,OAAuB;QAEvB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAClE,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW;gBAAE,SAAS;YAEtE,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC5E,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACtB,8CAA8C;oBAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,eAAe,QAAQ,aAAa,SAAS,CAAC,WAAW,qBAAqB,CAC/E,CAAC;oBAEF,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;wBACxB,MAAM,EAAE,MAAM;wBACd,GAAG,EAAE,IAAI;wBACT,MAAM,EAAE,IAAI;wBACZ,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,IAAI;wBACjB,SAAS,EAAE,IAAI;wBACf,aAAa,EAAE,IAAI;qBACpB,CAAC;oBAEF,sCAAsC;oBACtC,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;wBAC1B,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBAClD,CAAC;oBAED,YAAY,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,gBAAgB;wBACxB,MAAM,EAAE,QAAQ,QAAQ,EAAE;wBAC1B,MAAM,EAAE,IAAI;wBACZ,OAAO,EAAE,iCAAiC,SAAS,CAAC,WAAW,QAAQ;qBACxE,CAAC,CAAC;oBACH,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC9C,OAAO,EAAE,SAAS,CAAC,WAAW;wBAC9B,GAAG,EAAE,SAAS,CAAC,GAAG;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,SAAS,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,wBAAwB,CAAC,CAAC;YACxE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+CAA+C,GAAG,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC1C,OAAO,EAAE,YAAY,GAAG,CAAC;gBACvB,CAAC,CAAC,YAAY,YAAY,iBAAiB;gBAC3C,CAAC,CAAC,0BAA0B;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IAEzD,KAAK,CAAC,kBAAkB,CAC9B,MAAqB,EACrB,OAAuB,EACvB,kBAAuC;QAEvC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACzE,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,4BAA4B;YAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAAE,SAAS;YAEpD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAC5C,CAAC;YAEF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,4CAA4C;gBAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,0CAA0C,CAAC,CAAC;gBACzE,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;gBACjE,UAAU,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YAED,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,WAAW;gBAAE,SAAS;YAErC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC5E,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACtB,uCAAuC;oBACvC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEhE,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACpB,2CAA2C;wBAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,OAAO,IAAI,CAAC,GAAG,qDAAqD,CACrE,CAAC;wBACF,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;wBACjE,UAAU,EAAE,CAAC;oBACf,CAAC;yBAAM,CAAC;wBACN,uDAAuD;wBACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,oCAAoC,CAAC,CAAC;wBACnE,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;wBACnD,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM,EAAE,YAAY;4BACpB,MAAM,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE;4BACzB,MAAM,EAAE,IAAI;4BACZ,OAAO,EAAE,0CAA0C;yBACpD,CAAC,CAAC;wBACH,kBAAkB,CAAC,IAAI,CAAC;4BACtB,MAAM,EAAE,cAAc,IAAI,CAAC,GAAG,oCAAoC;4BAClE,MAAM,EAAE,gCAAgC;4BACxC,QAAQ,EAAE,SAAS;4BACnB,cAAc,EAAE,KAAK;4BACrB,oBAAoB,EAAE,IAAI;4BAC1B,WAAW,EAAE,KAAK;yBACnB,CAAC,CAAC;wBACH,UAAU,EAAE,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qCAAqC,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YACxC,OAAO,EAAE,UAAU,GAAG,CAAC;gBACrB,CAAC,CAAC,YAAY,UAAU,mBAAmB;gBAC3C,CAAC,CAAC,4BAA4B;SACjC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,IAAuC,EACvC,OAAuB,EACvB,kBAAuC;QAEvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACpC,kBAAkB;YAClB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,2CAA2C,CAAC,CAAC;gBACnE,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,OAAO,GAAG,EAAE;oBACpB,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,kCAAkC;iBAC5C,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;gBACpC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,mCAAmC,EAAE,SAAS,CAAC,CAAC;YAClF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,gCAAgC,GAAG,EAAE,CAAC,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,OAAO,GAAG,EAAE;oBACpB,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,mBAAmB,GAAG,EAAE;iBAClC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,MAAM,IAAI,CAAC,UAAU,CACnB,OAAO,GAAG,6DAA6D,EACvE,SAAS,CACV,CAAC;YACF,kBAAkB,CAAC,IAAI,CAAC;gBACtB,MAAM,EAAE,YAAY,GAAG,qCAAqC;gBAC5D,MAAM,EAAE,kDAAkD;gBAC1D,QAAQ,EAAE,SAAS;gBACnB,cAAc,EAAE,IAAI;gBACpB,oBAAoB,EAAE,IAAI;gBAC1B,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,OAAO,GAAG,EAAE;gBACpB,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,gDAAgD;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,iEAAiE;IAEzD,KAAK,CAAC,aAAa,CACzB,MAAqB,EACrB,OAAuB,EACvB,kBAAuC;QAEvC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAClE,IAAI,UAAU,CAAC,KAAK,KAAK,YAAY;gBAAE,SAAS;YAEhD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3D,MAAM,YAAY,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAE1D,IAAI,YAAY,IAAI,YAAY;gBAAE,SAAS;YAE3C,6BAA6B;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CACvC,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC;gBAChC,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC3D,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;oBAChD,uDAAuD;oBACvD,IAAI,KAAK,GAAG,YAAY;wBAAE,SAAS;gBACrC,CAAC;YACH,CAAC;YAED,YAAY;YACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,OAAO,GAAG,gBAAgB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,YAAY,cAAc,CACnF,CAAC;YACF,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,UAAU,CACnB,OAAO,GAAG,0BAA0B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAC/D,SAAS,CACV,CAAC;YAEF,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE,OAAO,GAAG,EAAE;gBACpB,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,mBAAmB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,YAAY,IAAI;aACjF,CAAC,CAAC;YACH,kBAAkB,CAAC,IAAI,CAAC;gBACtB,MAAM,EAAE,+BAA+B,GAAG,EAAE;gBAC5C,MAAM,EAAE,sCAAsC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,YAAY,IAAI;gBAC5F,QAAQ,EAAE,SAAS;gBACnB,cAAc,EAAE,KAAK;gBACrB,oBAAoB,EAAE,IAAI;gBAC1B,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;gBAClC,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjD,SAAS,EAAE,YAAY;aACxB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC1C,OAAO,EAAE,YAAY,GAAG,CAAC;gBACvB,CAAC,CAAC,GAAG,YAAY,2BAA2B;gBAC5C,CAAC,CAAC,sBAAsB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IAEzD,KAAK,CAAC,wBAAwB,CACpC,MAAqB,EACrB,OAAuB;QAEvB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAClE,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW;gBAAE,SAAS;YAEtE,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAClF,IAAI,CAAC,UAAU,CAAC,OAAO;oBAAE,SAAS;gBAElC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAErE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;oBAC5B,wCAAwC;oBACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,OAAO,GAAG,oEAAoE,CAC/E,CAAC;oBACF,IAAI,CAAC;wBACH,0BAA0B;wBAC1B,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;wBAC9D,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM,EAAE,cAAc;4BACtB,MAAM,EAAE,OAAO,GAAG,EAAE;4BACpB,MAAM,EAAE,IAAI;4BACZ,OAAO,EAAE,mBAAmB,UAAU,CAAC,MAAM,EAAE;yBAChD,CAAC,CAAC;wBACH,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC1E,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;wBAC/D,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM,EAAE,cAAc;4BACtB,MAAM,EAAE,OAAO,GAAG,EAAE;4BACpB,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,wBAAwB,GAAG,EAAE;yBACvC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,sCAAsC;oBACtC,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,OAAO,GAAG,kDAAkD,UAAU,CAAC,MAAM,EAAE,CAChF,CAAC;oBACF,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;wBAC1B,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,sBAAsB,CAAC,CAAC;oBACzE,CAAC;oBACD,MAAM,IAAI,CAAC,UAAU,CACnB,OAAO,GAAG,0CAA0C,UAAU,CAAC,MAAM,EAAE,EACvE,SAAS,CACV,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM,EAAE,cAAc;wBACtB,MAAM,EAAE,OAAO,GAAG,EAAE;wBACpB,MAAM,EAAE,IAAI;wBACZ,OAAO,EAAE,yCAAyC,UAAU,CAAC,MAAM,EAAE;qBACtE,CAAC,CAAC;oBACH,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE,IAAI,EAAE;wBAC/C,WAAW,EAAE,IAAI;wBACjB,MAAM,EAAE,UAAU,CAAC,MAAM;qBAC1B,CAAC,CAAC;gBACL,CAAC;gBAED,YAAY,EAAE,CAAC;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC1C,OAAO,EAAE,YAAY,GAAG,CAAC;gBACvB,CAAC,CAAC,GAAG,YAAY,qCAAqC;gBACtD,CAAC,CAAC,qCAAqC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IAEzD,KAAK,CAAC,iBAAiB,CAAC,MAAqB;QACnD,qEAAqE;QACrE,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAU,CAAC;QAChE,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBACpC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,gBAAgB,SAAS,EAAE,CAAC,CAAC;wBAC1D,YAAY,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC1C,OAAO,EAAE,YAAY,GAAG,CAAC;gBACvB,CAAC,CAAC,GAAG,YAAY,sBAAsB;gBACvC,CAAC,CAAC,kBAAkB;SACvB,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IAEzD,KAAK,CAAC,mBAAmB,CAC/B,MAAqB,EACrB,kBAAuC;QAEvC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvE,MAAM,aAAa,GAAa,EAAE,CAAC;QAEnC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAClE,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,WAAW;gBAAE,SAAS;YAEtE,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAC5E,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;oBACtB,aAAa,CAAC,IAAI,CAChB,GAAG,QAAQ,mCAAmC,SAAS,CAAC,WAAW,UAAU,CAC9E,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa,CAAC,IAAI,CAChB,GAAG,QAAQ,+BAA+B,SAAS,CAAC,WAAW,EAAE,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,kBAAkB,CAAC,IAAI,CAAC;gBACtB,MAAM,EAAE,2CAA2C;gBACnD,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,QAAQ,EAAE,SAAS;gBACnB,cAAc,EAAE,KAAK;gBACrB,oBAAoB,EAAE,IAAI;gBAC1B,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAClD,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC;gBAC/B,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,mCAAmC;gBAC5D,CAAC,CAAC,4BAA4B;SACjC,CAAC,CAAC;IACL,CAAC;IAED,kEAAkE;IAE1D,eAAe,CAAC,IAAmC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;aACnB,WAAW,EAAE;aACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;aAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;aACrB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,OAAO,WAAW,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,KAAa;QACnD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,KAAK,WAAW,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,OAAe,EACf,KAA+C;QAE/C,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;IAEO,QAAQ,CACd,MAAc,EACd,MAAc,EACd,MAAqB,EACrB,IAA8B;QAE9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACb,SAAS,EAAE,SAAS;YACpB,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,EAAE;YACvD,MAAM;YACN,IAAI;SACL,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ import type { ProjectContext } from '../core/context.js';
2
+ import type { TaskBackend } from '../interfaces/TaskBackend.js';
3
+ import type { Notifier } from '../interfaces/Notifier.js';
4
+ import type { CommandResult } from '../models/types.js';
5
+ export declare class SchedulerEngine {
6
+ private ctx;
7
+ private taskBackend;
8
+ private notifier?;
9
+ private log;
10
+ constructor(ctx: ProjectContext, taskBackend: TaskBackend, notifier?: Notifier | undefined);
11
+ tick(opts?: {
12
+ dryRun?: boolean;
13
+ }): Promise<CommandResult>;
14
+ /**
15
+ * Check global admission rules.
16
+ * Returns null if admission passes, or a reason string if blocked.
17
+ */
18
+ private checkAdmission;
19
+ /**
20
+ * Check conflict domain constraints for a specific card.
21
+ */
22
+ private checkConflictDomain;
23
+ }
24
+ //# sourceMappingURL=SchedulerEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchedulerEngine.d.ts","sourceRoot":"","sources":["../../src/engines/SchedulerEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,oBAAoB,CAAC;AAK5E,qBAAa,eAAe;IAIxB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,QAAQ,CAAC;IALnB,OAAO,CAAC,GAAG,CAAS;gBAGV,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,QAAQ,YAAA;IAKvB,IAAI,CAAC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAyJnE;;;OAGG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CA4B5B"}