kantban-cli 0.1.5 → 0.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/commands/pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AA6QrD,wBAAsB,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqTzF;AA4BD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwChE"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/commands/pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAuSrD,wBAAsB,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8WzF;AAgDD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwChE"}
@@ -35,18 +35,36 @@ function parseArgs(args) {
35
35
  case '--column':
36
36
  columnFilter = args[++i] ?? null;
37
37
  break;
38
- case '--max-iterations':
39
- maxIterations = Number(args[++i]);
38
+ case '--max-iterations': {
39
+ const val = Number(args[++i]);
40
+ if (isNaN(val) || val <= 0) {
41
+ console.error(`Error: --max-iterations requires a positive number, got: ${args[i]}`);
42
+ process.exit(1);
43
+ }
44
+ maxIterations = val;
40
45
  break;
41
- case '--max-budget':
42
- maxBudget = Number(args[++i]);
46
+ }
47
+ case '--max-budget': {
48
+ const val = Number(args[++i]);
49
+ if (isNaN(val) || val < 0) {
50
+ console.error(`Error: --max-budget requires a non-negative number, got: ${args[i]}`);
51
+ process.exit(1);
52
+ }
53
+ maxBudget = val;
43
54
  break;
55
+ }
44
56
  case '--model':
45
57
  model = args[++i] ?? null;
46
58
  break;
47
- case '--concurrency':
48
- concurrency = Number(args[++i]);
59
+ case '--concurrency': {
60
+ const val = Number(args[++i]);
61
+ if (isNaN(val) || val <= 0) {
62
+ console.error(`Error: --concurrency requires a positive number, got: ${args[i]}`);
63
+ process.exit(1);
64
+ }
65
+ concurrency = val;
49
66
  break;
67
+ }
50
68
  case '--log-retention':
51
69
  logRetention = Number(args[++i]) || 7;
52
70
  break;
@@ -168,7 +186,13 @@ async function invokeClaudeP(prompt, options) {
168
186
  activeChildProcesses.delete(child);
169
187
  if (err) {
170
188
  const execErr = err;
171
- const exitCode = execErr.code ?? (execErr.killed ? 137 : 1);
189
+ if (execErr.code === 'ENOENT') {
190
+ resolve({ exitCode: 127, output: 'Error: "claude" command not found. Ensure Claude Code CLI is installed and on PATH.' });
191
+ return;
192
+ }
193
+ const exitCode = typeof execErr.code === 'number'
194
+ ? execErr.code
195
+ : (execErr.killed ? 137 : 1);
172
196
  resolve({ exitCode, output: stdout || err.message || '' });
173
197
  }
174
198
  else {
@@ -180,18 +204,27 @@ async function invokeClaudeP(prompt, options) {
180
204
  }
181
205
  function killAllChildProcesses() {
182
206
  for (const child of activeChildProcesses) {
183
- if (child.pid) {
184
- // Kill the child's entire process tree (claude spawns sub-processes)
185
- try {
186
- process.kill(-child.pid, 'SIGTERM');
207
+ try {
208
+ if (child.pid) {
209
+ try {
210
+ process.kill(-child.pid, 'SIGTERM');
211
+ }
212
+ catch {
213
+ try {
214
+ child.kill('SIGTERM');
215
+ }
216
+ catch { /* already dead */ }
217
+ }
187
218
  }
188
- catch {
189
- // Process group kill failed — try direct kill
190
- child.kill('SIGTERM');
219
+ else {
220
+ try {
221
+ child.kill('SIGTERM');
222
+ }
223
+ catch { /* already dead */ }
191
224
  }
192
225
  }
193
- else {
194
- child.kill('SIGTERM');
226
+ catch {
227
+ // Process already exited — safe to ignore
195
228
  }
196
229
  }
197
230
  }
@@ -280,6 +313,9 @@ export async function runPipeline(client, args) {
280
313
  invokeClaudeP,
281
314
  mcpConfigPath,
282
315
  projectId,
316
+ log: (msg) => {
317
+ logger.orchestrator(`[${ticketId}] ${msg}`);
318
+ },
283
319
  };
284
320
  const loop = new RalphLoop(ticketId, columnId, effectiveConfig, loopDeps);
285
321
  // Track active loops for graceful shutdown
@@ -290,6 +326,11 @@ export async function runPipeline(client, args) {
290
326
  },
291
327
  createComment: (ticketId, body) => client.post(`/projects/${projectId}/tickets/${ticketId}/comments`, { body }),
292
328
  createSignal: (ticketId, body) => client.post(`/projects/${projectId}/tickets/${ticketId}/signals`, { body }),
329
+ createColumnSignal: (columnId, body) => client.post(`/projects/${projectId}/signals`, {
330
+ scopeType: 'column',
331
+ scopeId: columnId,
332
+ content: body,
333
+ }),
293
334
  claimTicket: (ticketId) => client.claimTicket(projectId, ticketId),
294
335
  fetchBlockedTickets: (ticketId) => client.get(`/projects/${projectId}/tickets/${ticketId}/blocked-tickets`),
295
336
  hasUnresolvedBlockers: async (ticketId) => {
@@ -302,7 +343,16 @@ export async function runPipeline(client, args) {
302
343
  // Initialize — discovers pipeline columns
303
344
  console.log(`Initializing pipeline for board ${opts.boardId}...`);
304
345
  logger.orchestrator('Initializing pipeline');
305
- await orchestrator.initialize();
346
+ try {
347
+ await orchestrator.initialize();
348
+ }
349
+ catch (err) {
350
+ const message = err instanceof Error ? err.message : String(err);
351
+ console.error(`Error: Failed to initialize pipeline: ${message}`);
352
+ console.error('Check that the board exists, has pipeline columns configured, and the API is reachable.');
353
+ cleanupMcpConfig(mcpConfigPath);
354
+ process.exit(1);
355
+ }
306
356
  const columnIds = orchestrator.pipelineColumnIds;
307
357
  if (columnIds.length === 0) {
308
358
  console.log('No pipeline columns found (columns need has_prompt=true and type !== "done").');
@@ -338,28 +388,47 @@ export async function runPipeline(client, args) {
338
388
  shutdownInProgress = true;
339
389
  console.log(`\nReceived ${signal}. Shutting down gracefully...`);
340
390
  logger.orchestrator(`Shutdown initiated (${signal})`);
341
- // Stop WS client
342
391
  wsClient?.stop();
343
- // Stop timers
344
392
  if (rescanTimer)
345
393
  clearInterval(rescanTimer);
346
- // Stop event queue
347
394
  eventQueue?.stop();
348
- // Stop all active Ralph Loops
349
395
  for (const loop of activeRalphLoops) {
350
396
  loop.stop();
351
397
  }
352
- // Kill any running claude -p child processes
353
398
  killAllChildProcesses();
354
- // Cleanup
399
+ // Wait for children to actually exit (up to 5 seconds)
400
+ const deadline = Date.now() + 5000;
401
+ while (activeChildProcesses.size > 0 && Date.now() < deadline) {
402
+ await new Promise(r => setTimeout(r, 200));
403
+ }
404
+ if (activeChildProcesses.size > 0) {
405
+ console.error(`Warning: ${String(activeChildProcesses.size)} child process(es) did not exit. Sending SIGKILL...`);
406
+ for (const child of activeChildProcesses) {
407
+ try {
408
+ if (child.pid)
409
+ process.kill(-child.pid, 'SIGKILL');
410
+ }
411
+ catch { /* ignore */ }
412
+ }
413
+ }
355
414
  cleanupMcpConfig(mcpConfigPath);
356
415
  removePidFile(opts.boardId);
357
416
  logger.orchestrator('Shutdown complete');
358
417
  console.log('Pipeline stopped.');
359
418
  process.exit(0);
360
419
  };
361
- process.on('SIGTERM', () => void shutdown('SIGTERM'));
362
- process.on('SIGINT', () => void shutdown('SIGINT'));
420
+ process.on('SIGTERM', () => {
421
+ shutdown('SIGTERM').catch((err) => {
422
+ console.error('Error during shutdown:', err);
423
+ process.exit(1);
424
+ });
425
+ });
426
+ process.on('SIGINT', () => {
427
+ shutdown('SIGINT').catch((err) => {
428
+ console.error('Error during shutdown:', err);
429
+ process.exit(1);
430
+ });
431
+ });
363
432
  // Clean up orphaned processes from a previous run before starting
364
433
  cleanupOrphanedProcesses(opts.boardId);
365
434
  // Write PID file
@@ -394,11 +463,23 @@ export async function runPipeline(client, args) {
394
463
  // ticket:created has payload.columnId; ticket:moved has the new column in ticket.column_id
395
464
  const columnId = (typeof payload['columnId'] === 'string' ? payload['columnId'] : null) ??
396
465
  (ticket && typeof ticket['column_id'] === 'string' ? ticket['column_id'] : null);
466
+ // Handle firing constraint changes — refresh constraint caches
467
+ if (wsEvent.type === 'firing_constraint:created' ||
468
+ wsEvent.type === 'firing_constraint:updated' ||
469
+ wsEvent.type === 'firing_constraint:deleted') {
470
+ logger.orchestrator(`WS event: ${wsEvent.type} — refreshing constraint caches`);
471
+ void orchestrator.refreshConstraints().catch((err) => {
472
+ const msg = err instanceof Error ? err.message : String(err);
473
+ logger.orchestrator(`Constraint cache refresh failed: ${msg}`);
474
+ });
475
+ return;
476
+ }
397
477
  if (!ticketId)
398
478
  return;
399
479
  const eventType = wsEvent.type;
400
480
  if (eventType === 'ticket:created' ||
401
481
  eventType === 'ticket:moved' ||
482
+ eventType === 'ticket:updated' ||
402
483
  eventType === 'ticket:archived' ||
403
484
  eventType === 'ticket:deleted') {
404
485
  const pipelineEvent = { type: eventType, ticketId, columnId };
@@ -457,14 +538,24 @@ export async function runPipeline(client, args) {
457
538
  // Persistent mode — unified poll loop: rescan columns and try to
458
539
  // reconnect WS if disconnected. This replaces the separate polling
459
540
  // fallback and rescan timer with a single 30s heartbeat.
541
+ let consecutiveScanFailures = 0;
460
542
  rescanTimer = setInterval(() => {
461
543
  void (async () => {
462
- // Rescan for tickets that moved via MCP agent actions
463
- await orchestrator.scanAndSpawn().catch((err) => {
544
+ try {
545
+ await orchestrator.scanAndSpawn();
546
+ if (consecutiveScanFailures > 0) {
547
+ console.log(`Rescan recovered after ${String(consecutiveScanFailures)} failure(s)`);
548
+ }
549
+ consecutiveScanFailures = 0;
550
+ }
551
+ catch (err) {
552
+ consecutiveScanFailures++;
464
553
  const msg = err instanceof Error ? err.message : String(err);
465
- logger.orchestrator(`Periodic rescan error: ${msg}`);
466
- });
467
- // If WS is down, try to reconnect
554
+ logger.orchestrator(`Periodic rescan error (${String(consecutiveScanFailures)}x): ${msg}`);
555
+ if (consecutiveScanFailures === 1 || consecutiveScanFailures % 10 === 0) {
556
+ console.error(`Warning: Rescan has failed ${String(consecutiveScanFailures)} consecutive time(s): ${msg}`);
557
+ }
558
+ }
468
559
  if (wsClient && !wsClient.connected) {
469
560
  const reconnected = await wsClient.tryReconnect();
470
561
  if (reconnected) {
@@ -481,19 +572,29 @@ export async function runPipeline(client, args) {
481
572
  // Active loop tracking for graceful shutdown
482
573
  // ---------------------------------------------------------------------------
483
574
  const activeRalphLoops = new Set();
484
- async function waitForAllLoops(orchestrator) {
485
- // Wait until all active loops have completed AND the orchestrator has no
486
- // queued or deferred work remaining. We also require two consecutive idle
487
- // checks to avoid a race where activeRalphLoops briefly hits 0 between a
488
- // loop completing (.finally) and drainQueue starting the next one (.then).
575
+ async function waitForAllLoops(orchestrator, timeoutMs = 4 * 60 * 60 * 1000) {
489
576
  let consecutiveIdle = 0;
577
+ const startTime = Date.now();
578
+ let lastProgressLog = 0;
490
579
  while (consecutiveIdle < 2) {
580
+ if (Date.now() - startTime > timeoutMs) {
581
+ console.error(`Warning: waitForAllLoops timed out after ${String(Math.round(timeoutMs / 60_000))}m. ` +
582
+ `Active: ${String(activeRalphLoops.size)}, orchestrator: ${String(orchestrator.activeLoopCount)}, ` +
583
+ `queued: ${String(orchestrator.hasQueuedWork)}`);
584
+ return;
585
+ }
491
586
  await new Promise((resolve) => setTimeout(resolve, 1000));
492
587
  if (activeRalphLoops.size === 0 && orchestrator.activeLoopCount === 0 && !orchestrator.hasQueuedWork) {
493
588
  consecutiveIdle++;
494
589
  }
495
590
  else {
496
591
  consecutiveIdle = 0;
592
+ const now = Date.now();
593
+ if (now - lastProgressLog > 30_000) {
594
+ lastProgressLog = now;
595
+ console.log(`Waiting... Active loops: ${String(activeRalphLoops.size)}, ` +
596
+ `queued work: ${String(orchestrator.hasQueuedWork)}`);
597
+ }
497
598
  }
498
599
  }
499
600
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/commands/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/commands/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Pure firing constraint evaluator for the pipeline orchestrator.
3
+ *
4
+ * Ported from apps/api/src/services/firing-constraints.service.ts with
5
+ * orchestrator-specific enhancements:
6
+ * - `last_fired_at` resolved from in-memory Map (seconds since last fire)
7
+ * - `active_loops` resolved from orchestrator runtime state
8
+ *
9
+ * This module has ZERO side-effects and ZERO external dependencies beyond
10
+ * @kantban/types. All data flows in via the BoardState parameter.
11
+ */
12
+ import type { FiringConstraint, EvaluateFiringConstraintResult } from '@kantban/types';
13
+ export interface ColumnState {
14
+ id: string;
15
+ name: string;
16
+ position: number;
17
+ column_type: string;
18
+ wip_limit: number | null;
19
+ ticket_count: number;
20
+ }
21
+ export interface BoardState {
22
+ columns: ColumnState[];
23
+ active_loops: Map<string, number>;
24
+ /** Seconds since last fire per column. Missing key = never fired. */
25
+ last_fired_at: Map<string, number>;
26
+ circuit_breaker_count: number;
27
+ backlog_ticket_count: number;
28
+ }
29
+ export interface EvalSummary {
30
+ total: number;
31
+ passed: number;
32
+ failed: number;
33
+ errors: number;
34
+ }
35
+ export interface EvalResult {
36
+ results: EvaluateFiringConstraintResult[];
37
+ summary: EvalSummary;
38
+ }
39
+ export declare function evaluateConstraints(constraints: FiringConstraint[], board: BoardState, columnId: string, now?: Date): EvalResult;
40
+ //# sourceMappingURL=constraint-evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraint-evaluator.d.ts","sourceRoot":"","sources":["../../src/lib/constraint-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,8BAA8B,EAC/B,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,qEAAqE;IACrE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,8BAA8B,EAAE,CAAC;IAC1C,OAAO,EAAE,WAAW,CAAC;CACtB;AAoED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,gBAAgB,EAAE,EAC/B,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,MAAM,EAChB,GAAG,CAAC,EAAE,IAAI,GACT,UAAU,CAoIZ"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Pure firing constraint evaluator for the pipeline orchestrator.
3
+ *
4
+ * Ported from apps/api/src/services/firing-constraints.service.ts with
5
+ * orchestrator-specific enhancements:
6
+ * - `last_fired_at` resolved from in-memory Map (seconds since last fire)
7
+ * - `active_loops` resolved from orchestrator runtime state
8
+ *
9
+ * This module has ZERO side-effects and ZERO external dependencies beyond
10
+ * @kantban/types. All data flows in via the BoardState parameter.
11
+ */
12
+ // ── Column Ref Resolution ────────────────────────────────────────────────────
13
+ function resolveColumn(board, columnId, subjectRef) {
14
+ const ref = subjectRef ?? 'self';
15
+ if (ref === 'self' || ref === null) {
16
+ const col = board.columns.find((c) => c.id === columnId) ?? null;
17
+ return { column: col, error: col ? null : `Column ${columnId} not found` };
18
+ }
19
+ if (ref === 'next') {
20
+ const sorted = [...board.columns].sort((a, b) => a.position - b.position);
21
+ const idx = sorted.findIndex((c) => c.id === columnId);
22
+ const next = idx >= 0 && idx < sorted.length - 1 ? sorted[idx + 1] : null;
23
+ return { column: next, error: next ? null : 'No next column exists' };
24
+ }
25
+ if (ref === 'prev') {
26
+ const sorted = [...board.columns].sort((a, b) => a.position - b.position);
27
+ const idx = sorted.findIndex((c) => c.id === columnId);
28
+ const prev = idx > 0 ? sorted[idx - 1] : null;
29
+ return { column: prev, error: prev ? null : 'No prev column exists' };
30
+ }
31
+ // UUID reference
32
+ const col = board.columns.find((c) => c.id === ref) ?? null;
33
+ return { column: col, error: col ? null : `Column ${ref} not found` };
34
+ }
35
+ // ── Operator Evaluation ──────────────────────────────────────────────────────
36
+ function applyOperator(resolved, operator, threshold) {
37
+ // For eq/neq: try numeric comparison when both sides are valid numbers
38
+ // (DB may store numbers as strings e.g. resolved=3 vs threshold="3")
39
+ if (operator === 'eq' || operator === 'neq') {
40
+ const rn = Number(resolved);
41
+ const tn = Number(threshold);
42
+ const bothNumeric = !isNaN(rn) && !isNaN(tn) && resolved !== '' && threshold !== '';
43
+ const equal = bothNumeric ? rn === tn : resolved === threshold;
44
+ return operator === 'eq' ? equal : !equal;
45
+ }
46
+ // For ordering operators, coerce to number
47
+ const r = Number(resolved);
48
+ const t = Number(threshold);
49
+ if (isNaN(r) || isNaN(t))
50
+ return false;
51
+ switch (operator) {
52
+ case 'lt': return r < t;
53
+ case 'lte': return r <= t;
54
+ case 'gt': return r > t;
55
+ case 'gte': return r >= t;
56
+ default: return false;
57
+ }
58
+ }
59
+ // ── Pure Evaluation Engine ───────────────────────────────────────────────────
60
+ export function evaluateConstraints(constraints, board, columnId, now) {
61
+ // Filter to enabled column-scope only, sort by position ascending
62
+ const enabled = constraints
63
+ .filter((c) => c.enabled && c.scope === 'column')
64
+ .sort((a, b) => a.position - b.position);
65
+ const results = [];
66
+ const summary = { total: 0, passed: 0, failed: 0, errors: 0 };
67
+ for (const constraint of enabled) {
68
+ summary.total++;
69
+ let resolvedValue = null;
70
+ let resolveError = null;
71
+ const subjectType = constraint.subject_type;
72
+ const subjectRef = constraint.subject_ref;
73
+ switch (subjectType) {
74
+ case 'column.ticket_count': {
75
+ const { column, error } = resolveColumn(board, columnId, subjectRef);
76
+ if (error || !column) {
77
+ resolveError = error ?? 'Column resolution failed';
78
+ }
79
+ else {
80
+ resolvedValue = column.ticket_count;
81
+ }
82
+ break;
83
+ }
84
+ case 'column.active_loops': {
85
+ const { column, error } = resolveColumn(board, columnId, subjectRef);
86
+ if (error || !column) {
87
+ resolveError = error ?? 'Column resolution failed';
88
+ }
89
+ else {
90
+ resolvedValue = board.active_loops.get(column.id) ?? 0;
91
+ }
92
+ break;
93
+ }
94
+ case 'column.wip_remaining': {
95
+ const { column, error } = resolveColumn(board, columnId, subjectRef);
96
+ if (error || !column) {
97
+ resolveError = error ?? 'Column resolution failed';
98
+ }
99
+ else {
100
+ resolvedValue = column.wip_limit === null ? 999999 : column.wip_limit - column.ticket_count;
101
+ }
102
+ break;
103
+ }
104
+ case 'column.last_fired_at': {
105
+ const { column, error } = resolveColumn(board, columnId, subjectRef);
106
+ if (error || !column) {
107
+ resolveError = error ?? 'Column resolution failed';
108
+ }
109
+ else {
110
+ // Seconds since last fire. If never fired, treat as Infinity (999999).
111
+ const secondsSinceLastFire = board.last_fired_at.get(column.id);
112
+ resolvedValue = secondsSinceLastFire ?? 999999;
113
+ }
114
+ break;
115
+ }
116
+ case 'board.total_active_loops': {
117
+ let total = 0;
118
+ for (const v of board.active_loops.values()) {
119
+ total += v;
120
+ }
121
+ resolvedValue = total;
122
+ break;
123
+ }
124
+ case 'board.circuit_breaker_count': {
125
+ resolvedValue = board.circuit_breaker_count;
126
+ break;
127
+ }
128
+ case 'backlog.ticket_count': {
129
+ resolvedValue = board.backlog_ticket_count;
130
+ break;
131
+ }
132
+ case 'ticket.field_value': {
133
+ resolveError = 'ticket.field_value requires ticket context (ticket-scope only)';
134
+ resolvedValue = null;
135
+ break;
136
+ }
137
+ case 'time.hour': {
138
+ const date = now ?? new Date();
139
+ resolvedValue = date.getUTCHours();
140
+ break;
141
+ }
142
+ default: {
143
+ resolveError = `Unknown subject type: ${subjectType}`;
144
+ break;
145
+ }
146
+ }
147
+ // Fail-open: if resolver returned an error, pass with error recorded
148
+ if (resolveError !== null) {
149
+ summary.errors++;
150
+ results.push({
151
+ constraint_id: constraint.id,
152
+ name: constraint.name,
153
+ column_id: constraint.column_id,
154
+ passed: true,
155
+ resolved_value: null,
156
+ threshold: { operator: constraint.operator, value: constraint.value },
157
+ error: resolveError,
158
+ });
159
+ summary.passed++;
160
+ continue;
161
+ }
162
+ const passed = applyOperator(resolvedValue, constraint.operator, constraint.value);
163
+ results.push({
164
+ constraint_id: constraint.id,
165
+ name: constraint.name,
166
+ column_id: constraint.column_id,
167
+ passed,
168
+ resolved_value: resolvedValue,
169
+ threshold: { operator: constraint.operator, value: constraint.value },
170
+ });
171
+ if (passed) {
172
+ summary.passed++;
173
+ }
174
+ else {
175
+ summary.failed++;
176
+ }
177
+ }
178
+ return { results, summary };
179
+ }
180
+ //# sourceMappingURL=constraint-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constraint-evaluator.js","sourceRoot":"","sources":["../../src/lib/constraint-evaluator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export interface PipelineEvent {
2
- type: 'ticket:created' | 'ticket:moved' | 'ticket:archived' | 'ticket:deleted';
2
+ type: 'ticket:created' | 'ticket:moved' | 'ticket:updated' | 'ticket:archived' | 'ticket:deleted';
3
3
  ticketId: string;
4
4
  columnId: string | null;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event-queue.d.ts","sourceRoot":"","sources":["../../src/lib/event-queue.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,gBAAgB,GAAG,cAAc,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AAE1E,UAAU,iBAAiB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,iBAAsB;IAMlE,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;IASZ,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAMhC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;YAW1B,KAAK;CAiBpB"}
1
+ {"version":3,"file":"event-queue.d.ts","sourceRoot":"","sources":["../../src/lib/event-queue.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,gBAAgB,GAAG,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;IAClG,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1E,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AAE1E,UAAU,iBAAiB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAMD,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,iBAAsB;IAMlE,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;IASZ,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAWhC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;YAW1B,KAAK;CAiBpB"}