@eventmodelers/cli 1.0.145 → 1.0.147

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.
package/cli.js CHANGED
@@ -462,6 +462,14 @@ function getSharedRl() {
462
462
  if (!sharedRl) {
463
463
  sharedRl = createInterface({ input: process.stdin, output: process.stdout });
464
464
  sharedRlLines = sharedRl[Symbol.asyncIterator]();
465
+ // On a TTY readline puts stdin in raw mode, so Ctrl-C arrives as a keypress and the kernel
466
+ // never raises SIGINT — with no 'SIGINT' listener on the interface readline just pauses
467
+ // input and swallows it. The interface lives for the whole process (the loop included), so
468
+ // forward it as the real signal to whatever shutdown handlers are installed.
469
+ sharedRl.on('SIGINT', () => {
470
+ if (process.listenerCount('SIGINT') === 0) process.exit(130);
471
+ process.emit('SIGINT', 'SIGINT');
472
+ });
465
473
  }
466
474
  return sharedRl;
467
475
  }
@@ -4289,7 +4297,7 @@ program
4289
4297
  eventType: 'node:changed',
4290
4298
  nodeId: slice.id,
4291
4299
  changedAttributes: ['sliceStatus'],
4292
- meta: { sliceStatus: newStatus },
4300
+ meta: { type: 'SLICE_BORDER', sliceStatus: newStatus },
4293
4301
  }]),
4294
4302
  });
4295
4303
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eventmodelers/cli",
3
- "version": "1.0.145",
3
+ "version": "1.0.147",
4
4
  "description": "Eventmodelers CLI — real-time Claude agent + skills for Claude Code, for any stack (Node, Supabase, Axon, OpenCQRS, UmaDB, Kurrent, or modeling-only)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -667,7 +667,7 @@ async function blockStuckSlice(kitDir, cfg, credentialed, planned, attempts, las
667
667
  boardId: cfg.boardId,
668
668
  timestamp: Date.now(),
669
669
  changedAttributes: ['sliceStatus'],
670
- meta: { sliceStatus: 'Blocked' },
670
+ meta: { type: 'SLICE_BORDER', sliceStatus: 'Blocked' },
671
671
  }]),
672
672
  });
673
673
  } catch (err) {
@@ -121,6 +121,7 @@ curl -s -X POST "<BASE_URL>/api/org/<ORG_ID>/boards/<BOARD_ID>/nodes/events" \
121
121
  "nodeId": "<SLICE_NODE_ID>",
122
122
  "changedAttributes": ["sliceStatus"],
123
123
  "meta": {
124
+ "type": "SLICE_BORDER",
124
125
  "sliceStatus": "Blocked"
125
126
  }
126
127
  }]'
@@ -91,6 +91,7 @@ curl -s -X POST "<BASE_URL>/api/org/<ORG_ID>/boards/<BOARD_ID>/nodes/events" \
91
91
  "nodeId": "<SLICE_NODE_ID>",
92
92
  "changedAttributes": ["sliceStatus"],
93
93
  "meta": {
94
+ "type": "SLICE_BORDER",
94
95
  "sliceStatus": "<newStatus>"
95
96
  }
96
97
  }]'