@agents-ensemble/cli 0.5.3 → 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 (92) hide show
  1. package/dist/display/create-session-display-sink.d.ts.map +1 -1
  2. package/dist/display/create-session-display-sink.js +1 -0
  3. package/dist/display/create-session-display-sink.js.map +1 -1
  4. package/dist/display/session-display-reducer.d.ts.map +1 -1
  5. package/dist/display/session-display-reducer.js +11 -0
  6. package/dist/display/session-display-reducer.js.map +1 -1
  7. package/dist/display/session-display-state.d.ts +5 -0
  8. package/dist/display/session-display-state.d.ts.map +1 -1
  9. package/dist/display/session-display-state.js +4 -0
  10. package/dist/display/session-display-state.js.map +1 -1
  11. package/dist/issue-command.d.ts.map +1 -1
  12. package/dist/issue-command.js +3 -1
  13. package/dist/issue-command.js.map +1 -1
  14. package/dist/session-log-lines.d.ts.map +1 -1
  15. package/dist/session-log-lines.js +12 -4
  16. package/dist/session-log-lines.js.map +1 -1
  17. package/dist/session-sinks.d.ts.map +1 -1
  18. package/dist/session-sinks.js +1 -0
  19. package/dist/session-sinks.js.map +1 -1
  20. package/dist/tui/compute-operator-input-cursor-y.d.ts +14 -0
  21. package/dist/tui/compute-operator-input-cursor-y.d.ts.map +1 -1
  22. package/dist/tui/compute-operator-input-cursor-y.js +17 -0
  23. package/dist/tui/compute-operator-input-cursor-y.js.map +1 -1
  24. package/dist/tui/create-issue-session-tui-host.d.ts +6 -2
  25. package/dist/tui/create-issue-session-tui-host.d.ts.map +1 -1
  26. package/dist/tui/create-issue-session-tui-host.js +23 -5
  27. package/dist/tui/create-issue-session-tui-host.js.map +1 -1
  28. package/dist/tui/create-issue-session-tui-host.test.js +123 -1
  29. package/dist/tui/create-issue-session-tui-host.test.js.map +1 -1
  30. package/dist/tui/create-tui-telemetry-sink.d.ts +1 -1
  31. package/dist/tui/create-tui-telemetry-sink.d.ts.map +1 -1
  32. package/dist/tui/create-tui-telemetry-sink.js +5 -5
  33. package/dist/tui/create-tui-telemetry-sink.js.map +1 -1
  34. package/dist/tui/format-operator-context.d.ts +26 -4
  35. package/dist/tui/format-operator-context.d.ts.map +1 -1
  36. package/dist/tui/format-operator-context.js +73 -18
  37. package/dist/tui/format-operator-context.js.map +1 -1
  38. package/dist/tui/issue-session-tui-stream-cursor.test.d.ts +2 -0
  39. package/dist/tui/issue-session-tui-stream-cursor.test.d.ts.map +1 -0
  40. package/dist/tui/issue-session-tui-stream-cursor.test.js +47 -0
  41. package/dist/tui/issue-session-tui-stream-cursor.test.js.map +1 -0
  42. package/dist/tui/issue-session-tui-stream.d.ts +11 -0
  43. package/dist/tui/issue-session-tui-stream.d.ts.map +1 -0
  44. package/dist/tui/issue-session-tui-stream.js +117 -0
  45. package/dist/tui/issue-session-tui-stream.js.map +1 -0
  46. package/dist/tui/issue-session-tui-stream.test.d.ts +2 -0
  47. package/dist/tui/issue-session-tui-stream.test.d.ts.map +1 -0
  48. package/dist/tui/issue-session-tui-stream.test.js +380 -0
  49. package/dist/tui/issue-session-tui-stream.test.js.map +1 -0
  50. package/dist/tui/issue-session-tui.d.ts +24 -1
  51. package/dist/tui/issue-session-tui.d.ts.map +1 -1
  52. package/dist/tui/issue-session-tui.js +35 -26
  53. package/dist/tui/issue-session-tui.js.map +1 -1
  54. package/dist/tui/issue-session-tui.test.js +288 -23
  55. package/dist/tui/issue-session-tui.test.js.map +1 -1
  56. package/dist/tui/open-questions-pane.d.ts +2 -0
  57. package/dist/tui/open-questions-pane.d.ts.map +1 -1
  58. package/dist/tui/open-questions-pane.js +5 -3
  59. package/dist/tui/open-questions-pane.js.map +1 -1
  60. package/dist/tui/operator-text-area.d.ts.map +1 -1
  61. package/dist/tui/operator-text-area.js +2 -1
  62. package/dist/tui/operator-text-area.js.map +1 -1
  63. package/dist/tui/operator-text-area.test-double.d.ts.map +1 -1
  64. package/dist/tui/operator-text-area.test-double.js +3 -2
  65. package/dist/tui/operator-text-area.test-double.js.map +1 -1
  66. package/dist/tui/stream-layout.d.ts +20 -0
  67. package/dist/tui/stream-layout.d.ts.map +1 -0
  68. package/dist/tui/stream-layout.js +55 -0
  69. package/dist/tui/stream-layout.js.map +1 -0
  70. package/dist/tui/titled-border-line.d.ts +10 -1
  71. package/dist/tui/titled-border-line.d.ts.map +1 -1
  72. package/dist/tui/titled-border-line.js +62 -12
  73. package/dist/tui/titled-border-line.js.map +1 -1
  74. package/dist/tui/titled-border-pane.d.ts +5 -1
  75. package/dist/tui/titled-border-pane.d.ts.map +1 -1
  76. package/dist/tui/titled-border-pane.ink.test.js +67 -0
  77. package/dist/tui/titled-border-pane.ink.test.js.map +1 -1
  78. package/dist/tui/titled-border-pane.js +32 -3
  79. package/dist/tui/titled-border-pane.js.map +1 -1
  80. package/dist/tui/tui-layout-constants.d.ts +12 -0
  81. package/dist/tui/tui-layout-constants.d.ts.map +1 -1
  82. package/dist/tui/tui-layout-constants.js +12 -0
  83. package/dist/tui/tui-layout-constants.js.map +1 -1
  84. package/dist/tui/tui-layout-mode.d.ts +13 -0
  85. package/dist/tui/tui-layout-mode.d.ts.map +1 -0
  86. package/dist/tui/tui-layout-mode.js +16 -0
  87. package/dist/tui/tui-layout-mode.js.map +1 -0
  88. package/dist/tui/tui-view-model.d.ts +12 -1
  89. package/dist/tui/tui-view-model.d.ts.map +1 -1
  90. package/dist/tui/tui-view-model.js +25 -4
  91. package/dist/tui/tui-view-model.js.map +1 -1
  92. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"issue-session-tui.js","sourceRoot":"","sources":["../../src/tui/issue-session-tui.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue-session-tui.js","sourceRoot":"","sources":["../../src/tui/issue-session-tui.tsx"],"names":[],"mappings":"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"}
@@ -37,6 +37,7 @@ function fillScrollableHarnessLog(viewModel, count = 30) {
37
37
  }
38
38
  const SCROLL_HINT = 'PgUp/PgDn でスクロール';
39
39
  const ISSUE_URL = 'https://github.com/otolab/agents-ensemble/issues/249';
40
+ const NON_CANONICAL_ISSUE_URL = 'http://github.com/otolab/agents-ensemble/issues/249/';
40
41
  function createOpenQuestion(overrides) {
41
42
  return {
42
43
  responseType: 'text',
@@ -90,6 +91,7 @@ describe('IssueSessionTui', () => {
90
91
  askedAt: 1,
91
92
  },
92
93
  ],
94
+ dispatchHold: { hold: false, heldEventCount: 0 },
93
95
  });
94
96
  viewModel.appendActivityLog('operator', 'operator ping');
95
97
  viewModel.appendActivityLog('conductor', 'conductor says hi');
@@ -107,13 +109,26 @@ describe('IssueSessionTui', () => {
107
109
  expect(frame).toContain('operator>');
108
110
  expect(frame).toContain(INPUT_PANE_TITLE);
109
111
  });
110
- it('shows post-loop hint in input area', () => {
112
+ it('shows dispatch hold count in the Workers pane title', () => {
113
+ const viewModel = createTuiViewModel();
114
+ viewModel.setDisplayState({
115
+ workers: {},
116
+ conductorOutput: null,
117
+ openQuestions: [],
118
+ dispatchHold: { hold: true, heldEventCount: 3 },
119
+ });
120
+ const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: () => { } }));
121
+ expect(lastFrame() ?? '').toContain('conductor dispatch 保留中(3 件)');
122
+ });
123
+ it('shows post-loop prompt in input area without waiting status', () => {
111
124
  const viewModel = createTuiViewModel();
112
125
  viewModel.setPostLoopWaiting(true);
113
126
  const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: () => { } }));
114
- expect(lastFrame() ?? '').toContain('post-loop 待機中');
127
+ const frame = lastFrame() ?? '';
128
+ expect(frame).toContain('追加指示を入力するか /exit で終了');
129
+ expect(frame).not.toContain('post-loop 待機中');
115
130
  });
116
- it('keeps the current issue link across context hint lifecycle states', async () => {
131
+ it('shows the issue link in the workers pane header and prompt-only operator input', async () => {
117
132
  const viewModel = createTuiViewModel();
118
133
  viewModel.setOperatorContext({
119
134
  conductorTurn: 1,
@@ -121,16 +136,21 @@ describe('IssueSessionTui', () => {
121
136
  maxTurns: null,
122
137
  openQuestions: [],
123
138
  });
124
- const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, issueUrl: ISSUE_URL, onSubmit: () => { } }));
139
+ const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, issueUrl: NON_CANONICAL_ISSUE_URL, onSubmit: () => { } }));
125
140
  const issueLabel = 'otolab/agents-ensemble#249';
126
141
  const osc8Open = `\u001b]8;;${ISSUE_URL}\u0007`;
127
- expect(lastFrame() ?? '').toContain(issueLabel);
128
- expect(lastFrame() ?? '').toContain(osc8Open);
129
- expect(lastFrame() ?? '').toContain('自律ターン 2/∞');
142
+ const nonCanonicalOsc8Open = `\u001b]8;;${NON_CANONICAL_ISSUE_URL}\u0007`;
143
+ const frame = lastFrame() ?? '';
144
+ expect(frame).toContain(issueLabel);
145
+ expect(frame).toContain(osc8Open);
146
+ expect(frame).not.toContain(nonCanonicalOsc8Open);
147
+ expect(frame).toContain('任意のタイミングで入力 · /exit で終了');
148
+ expect(frame).not.toContain(`${issueLabel} — 任意のタイミングで入力 · /exit で終了`);
130
149
  viewModel.setDisplayState({
131
150
  workers: {},
132
151
  conductorOutput: null,
133
152
  openQuestions: [createOpenQuestion({ id: 'inq-1', question: 'Continue?' })],
153
+ dispatchHold: { hold: false, heldEventCount: 0 },
134
154
  });
135
155
  viewModel.setOperatorContext({
136
156
  conductorTurn: 1,
@@ -140,17 +160,37 @@ describe('IssueSessionTui', () => {
140
160
  });
141
161
  await flushInkStdin();
142
162
  expect(lastFrame() ?? '').toContain(issueLabel);
143
- expect(lastFrame() ?? '').toContain('— inq-1');
163
+ expect(lastFrame() ?? '').toContain(osc8Open);
164
+ expect(lastFrame() ?? '').not.toContain(nonCanonicalOsc8Open);
165
+ expect(lastFrame() ?? '').toContain('inq-1 (1/1) への回答');
166
+ viewModel.setDisplayState({
167
+ workers: {},
168
+ conductorOutput: null,
169
+ openQuestions: [],
170
+ dispatchHold: { hold: false, heldEventCount: 0 },
171
+ });
172
+ viewModel.setOperatorContext({
173
+ conductorTurn: 1,
174
+ autonomousTurns: 2,
175
+ maxTurns: null,
176
+ openQuestions: [],
177
+ });
144
178
  viewModel.setPostLoopWaiting(true);
145
179
  await flushInkStdin();
146
180
  expect(lastFrame() ?? '').toContain(issueLabel);
147
- expect(lastFrame() ?? '').toContain('— post-loop 待機中');
181
+ expect(lastFrame() ?? '').toContain(osc8Open);
182
+ expect(lastFrame() ?? '').not.toContain(nonCanonicalOsc8Open);
183
+ expect(lastFrame() ?? '').toContain('追加指示を入力するか /exit で終了');
184
+ expect(lastFrame() ?? '').not.toContain('post-loop 待機中');
148
185
  viewModel.setShuttingDown(true);
149
186
  await flushInkStdin();
150
187
  expect(lastFrame() ?? '').toContain(issueLabel);
151
- expect(lastFrame() ?? '').toContain('— 終了しています…');
188
+ expect(lastFrame() ?? '').toContain(osc8Open);
189
+ expect(lastFrame() ?? '').not.toContain(nonCanonicalOsc8Open);
190
+ expect(lastFrame() ?? '').toContain('終了しています…');
191
+ expect(lastFrame() ?? '').not.toContain(`${issueLabel} — 終了しています…`);
152
192
  });
153
- it('renders only the issue label when OSC 8 is unavailable', () => {
193
+ it('renders only the issue label in the workers header when OSC 8 is unavailable', () => {
154
194
  const viewModel = createTuiViewModel();
155
195
  viewModel.setOperatorContext({
156
196
  conductorTurn: 1,
@@ -163,24 +203,135 @@ describe('IssueSessionTui', () => {
163
203
  expect(frame).toContain('otolab/agents-ensemble#249');
164
204
  expect(frame).not.toContain('\u001b]8;;');
165
205
  });
166
- it('does not split an OSC 8 sequence when the issue label cannot fit', () => {
206
+ it('renders the canonical Issue URL in the workers header with URL fallback', () => {
207
+ const viewModel = createTuiViewModel();
208
+ const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, issueUrl: NON_CANONICAL_ISSUE_URL, issueLinkMode: "url", onSubmit: () => { } }));
209
+ const frame = lastFrame() ?? '';
210
+ expect(frame).toContain(`${ISSUE_URL} ─╮`);
211
+ expect(frame).not.toContain('otolab/agents-ensemble#249');
212
+ expect(frame).not.toContain('\u001b]8;;');
213
+ });
214
+ it('keeps the canonical Issue URL in URL fallback at a narrow width', () => {
167
215
  Object.defineProperty(process.stdout, 'columns', {
168
216
  configurable: true,
169
- value: 20,
217
+ value: 24,
170
218
  });
171
219
  const viewModel = createTuiViewModel();
220
+ const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, issueUrl: NON_CANONICAL_ISSUE_URL, issueLinkMode: "url", onSubmit: () => { } }));
221
+ const workersBorderLine = (lastFrame() ?? '').split('\n').find((line) => line.includes('Workers')) ?? '';
222
+ expect(workersBorderLine).toContain(ISSUE_URL);
223
+ expect(workersBorderLine).toContain(`${ISSUE_URL} ─╮`);
224
+ expect(workersBorderLine).not.toContain('https:/…');
225
+ expect(workersBorderLine).not.toContain('\u001b]8;;');
226
+ });
227
+ it('keeps the canonical Issue URL in URL fallback across context lifecycle states', async () => {
228
+ Object.defineProperty(process.stdout, 'columns', {
229
+ configurable: true,
230
+ value: 24,
231
+ });
232
+ const viewModel = createTuiViewModel();
233
+ const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, issueUrl: NON_CANONICAL_ISSUE_URL, issueLinkMode: "url", onSubmit: () => { } }));
234
+ const expectCanonicalIssueUrl = () => {
235
+ const workersBorderLine = (lastFrame() ?? '').split('\n').find((line) => line.includes('Workers')) ?? '';
236
+ expect(workersBorderLine).toContain(ISSUE_URL);
237
+ expect(workersBorderLine).toContain(`${ISSUE_URL} ─╮`);
238
+ expect(workersBorderLine).not.toContain('https:/…');
239
+ expect(workersBorderLine).not.toContain('\u001b]8;;');
240
+ };
241
+ expectCanonicalIssueUrl();
242
+ const question = createOpenQuestion({ id: 'inq-1', question: 'Continue?' });
243
+ viewModel.setDisplayState({
244
+ workers: {},
245
+ conductorOutput: null,
246
+ openQuestions: [question],
247
+ dispatchHold: { hold: false, heldEventCount: 0 },
248
+ });
249
+ viewModel.setOperatorContext({
250
+ conductorTurn: 1,
251
+ autonomousTurns: 0,
252
+ maxTurns: null,
253
+ openQuestions: [question],
254
+ });
255
+ await flushInkStdin();
256
+ expectCanonicalIssueUrl();
257
+ expect(lastFrame() ?? '').toContain('inq-1 (1/1)');
258
+ expect(lastFrame() ?? '').toContain('への回答');
259
+ viewModel.setDisplayState({
260
+ workers: {},
261
+ conductorOutput: null,
262
+ openQuestions: [],
263
+ dispatchHold: { hold: false, heldEventCount: 0 },
264
+ });
172
265
  viewModel.setOperatorContext({
173
266
  conductorTurn: 1,
174
267
  autonomousTurns: 0,
175
268
  maxTurns: null,
176
269
  openQuestions: [],
177
270
  });
178
- const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, issueUrl: ISSUE_URL, onSubmit: () => { } }));
271
+ viewModel.setPostLoopWaiting(true);
272
+ await flushInkStdin();
273
+ expectCanonicalIssueUrl();
274
+ expect(lastFrame() ?? '').toContain('追加指示を入力するか');
275
+ expect(lastFrame() ?? '').toContain('/exit で終了');
276
+ viewModel.setShuttingDown(true);
277
+ await flushInkStdin();
278
+ expectCanonicalIssueUrl();
279
+ expect(lastFrame() ?? '').toContain('終了しています…');
280
+ });
281
+ it('preserves the canonical Issue URL when dispatch hold adds a title suffix', () => {
282
+ const viewModel = createTuiViewModel();
283
+ viewModel.setDisplayState({
284
+ workers: {},
285
+ conductorOutput: null,
286
+ openQuestions: [],
287
+ dispatchHold: { hold: true, heldEventCount: 3 },
288
+ });
289
+ const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, issueUrl: NON_CANONICAL_ISSUE_URL, issueLinkMode: "url", onSubmit: () => { } }));
290
+ const workersBorderLine = (lastFrame() ?? '').split('\n').find((line) => line.includes('Workers')) ?? '';
291
+ expect(workersBorderLine).toContain(ISSUE_URL);
292
+ expect(workersBorderLine).toContain(`${ISSUE_URL} ─╮`);
293
+ expect(workersBorderLine).not.toContain('https://github.com/otolab/a…');
294
+ expect(workersBorderLine).not.toContain('\u001b]8;;');
295
+ });
296
+ it('truncates the issue label in the workers header on a narrow terminal', () => {
297
+ Object.defineProperty(process.stdout, 'columns', {
298
+ configurable: true,
299
+ value: 24,
300
+ });
301
+ const viewModel = createTuiViewModel();
302
+ viewModel.setOperatorContext({
303
+ conductorTurn: 1,
304
+ autonomousTurns: 0,
305
+ maxTurns: null,
306
+ openQuestions: [],
307
+ });
308
+ const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, issueUrl: ISSUE_URL, issueLinkMode: "label", onSubmit: () => { } }));
179
309
  const frame = lastFrame() ?? '';
180
- expect(frame).toContain('otolab/agents-en');
181
- expect(frame).toContain('semble#249');
310
+ const workersBorderLine = frame.split('\n')[0] ?? '';
311
+ expect(workersBorderLine).toContain('Workers');
312
+ expect(workersBorderLine).toContain('…');
182
313
  expect(frame).not.toContain('\u001b]8;;');
183
314
  });
315
+ it('closes the narrow Workers header Issue hyperlink before the border', () => {
316
+ Object.defineProperty(process.stdout, 'columns', {
317
+ configurable: true,
318
+ value: 24,
319
+ });
320
+ const viewModel = createTuiViewModel();
321
+ const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, issueUrl: NON_CANONICAL_ISSUE_URL, onSubmit: () => { } }));
322
+ const workersBorderLine = (lastFrame() ?? '').split('\n').find((line) => line.includes('Workers')) ?? '';
323
+ const canonicalOsc8Open = `\u001b]8;;${ISSUE_URL}\u0007`;
324
+ const osc8Close = '\u001b]8;;\u0007';
325
+ const linkOpenIndex = workersBorderLine.indexOf(canonicalOsc8Open);
326
+ const linkCloseIndex = workersBorderLine.indexOf(osc8Close, linkOpenIndex + canonicalOsc8Open.length);
327
+ const closingBorderIndex = workersBorderLine.lastIndexOf('─╮');
328
+ expect(workersBorderLine).toContain(`${canonicalOsc8Open}otolab/a…${osc8Close}`);
329
+ expect(workersBorderLine).not.toContain(`\u001b]8;;${NON_CANONICAL_ISSUE_URL}\u0007`);
330
+ expect(linkCloseIndex).toBeGreaterThan(linkOpenIndex);
331
+ expect(linkCloseIndex).toBeLessThan(closingBorderIndex);
332
+ expect(workersBorderLine.slice(closingBorderIndex)).not.toContain(osc8Close);
333
+ expect(workersBorderLine.match(/\u001b\]8;;/g)).toHaveLength(2);
334
+ });
184
335
  it('aligns IME cursor coordinates with the rendered operator input line', () => {
185
336
  const terminalRows = 24;
186
337
  const terminalColumns = 80;
@@ -207,7 +358,7 @@ describe('IssueSessionTui', () => {
207
358
  });
208
359
  const contextHint = formatOperatorContextHint(viewModel.getSnapshot().operatorContext);
209
360
  const hintLineCount = wrapTextToWidth(contextHint, contentWidth).length;
210
- const openQuestionsPaneHeight = OPEN_QUESTIONS_PANE_MIN_HEIGHT;
361
+ const openQuestionsPaneHeight = 0;
211
362
  const expectedInputLineIndex = computeOperatorInputLineIndex({
212
363
  terminalRows,
213
364
  hintLineCount,
@@ -250,7 +401,7 @@ describe('IssueSessionTui', () => {
250
401
  });
251
402
  const contextHint = formatOperatorContextHint(viewModel.getSnapshot().operatorContext);
252
403
  const hintLineCount = wrapTextToWidth(contextHint, contentWidth).length;
253
- const openQuestionsPaneHeight = OPEN_QUESTIONS_PANE_MIN_HEIGHT;
404
+ const openQuestionsPaneHeight = 0;
254
405
  const expectedInputLineIndex = computeOperatorInputLineIndex({
255
406
  terminalRows,
256
407
  hintLineCount,
@@ -277,6 +428,7 @@ describe('IssueSessionTui', () => {
277
428
  },
278
429
  conductorOutput: null,
279
430
  openQuestions: [],
431
+ dispatchHold: { hold: false, heldEventCount: 0 },
280
432
  });
281
433
  const { lastFrame: thinkingFrame, unmount: unmountThinking } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: () => { } }));
282
434
  expect(thinkingFrame() ?? '').toContain('conductor: thinking');
@@ -288,6 +440,7 @@ describe('IssueSessionTui', () => {
288
440
  },
289
441
  conductorOutput: 'done',
290
442
  openQuestions: [],
443
+ dispatchHold: { hold: false, heldEventCount: 0 },
291
444
  });
292
445
  const { lastFrame: idleFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: () => { } }));
293
446
  expect(idleFrame() ?? '').toContain('conductor: idle');
@@ -322,6 +475,7 @@ describe('IssueSessionTui', () => {
322
475
  askedAt: 1,
323
476
  },
324
477
  ],
478
+ dispatchHold: { hold: false, heldEventCount: 0 },
325
479
  });
326
480
  viewModel.setOperatorContext({
327
481
  conductorTurn: 1,
@@ -338,13 +492,98 @@ describe('IssueSessionTui', () => {
338
492
  expectNoContentOnBorderLines(frame);
339
493
  expect(frame.split('\n')).toHaveLength(terminalRows);
340
494
  });
341
- it('shows empty-state placeholders when no session activity yet', () => {
495
+ it('shows the no-question input mode when no session activity yet', () => {
342
496
  const viewModel = createTuiViewModel();
343
497
  const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: () => { } }));
344
498
  const frame = lastFrame() ?? '';
345
499
  expect(frame).toContain('(待機中)');
346
500
  expect(frame).toContain('(活動ログなし)');
347
- expect(frame).toContain('(未回答なし)');
501
+ expect(frame).not.toContain('Open questions');
502
+ expect(frame).not.toContain('(未回答なし)');
503
+ expect(frame).toContain('任意のタイミングで入力 · /exit で終了');
504
+ });
505
+ it('switches the lower UI between no-question and question modes', async () => {
506
+ const viewModel = createTuiViewModel();
507
+ const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: () => { } }));
508
+ expect(lastFrame() ?? '').not.toContain('Open questions');
509
+ expect(lastFrame() ?? '').toContain('任意のタイミングで入力 · /exit で終了');
510
+ viewModel.setDisplayState({
511
+ workers: {},
512
+ conductorOutput: null,
513
+ openQuestions: [createOpenQuestion({ id: 'inq-1', question: 'Answer?' })],
514
+ dispatchHold: { hold: false, heldEventCount: 0 },
515
+ });
516
+ await flushInkStdin();
517
+ expect(lastFrame() ?? '').toContain('Open questions');
518
+ expect(lastFrame() ?? '').toContain('inq-1 (1/1) への回答');
519
+ expect(lastFrame() ?? '').not.toContain('任意のタイミングで入力 · /exit で終了');
520
+ viewModel.setDisplayState({
521
+ workers: {},
522
+ conductorOutput: null,
523
+ openQuestions: [],
524
+ dispatchHold: { hold: false, heldEventCount: 0 },
525
+ });
526
+ await flushInkStdin();
527
+ expect(lastFrame() ?? '').not.toContain('Open questions');
528
+ expect(lastFrame() ?? '').toContain('任意のタイミングで入力 · /exit で終了');
529
+ });
530
+ it.each([
531
+ [
532
+ 'one restored question',
533
+ [createOpenQuestion({ id: 'inq-resumed-1', question: 'Resume one?' })],
534
+ ],
535
+ [
536
+ 'multiple restored questions',
537
+ [
538
+ createOpenQuestion({ id: 'inq-resumed-1', question: 'Resume first?' }),
539
+ createOpenQuestion({ id: 'inq-resumed-2', question: 'Resume second?' }),
540
+ ],
541
+ ],
542
+ ])('renders %s from the resumed operator context', async (_name, restoredQuestions) => {
543
+ const viewModel = createTuiViewModel();
544
+ const setOperatorQuestions = (openQuestions) => {
545
+ viewModel.setOperatorContext({
546
+ conductorTurn: 2,
547
+ autonomousTurns: 1,
548
+ maxTurns: null,
549
+ openQuestions,
550
+ });
551
+ };
552
+ setOperatorQuestions(restoredQuestions);
553
+ const selectedIndex = restoredQuestions.length > 1 ? 1 : 0;
554
+ let submittedOptions;
555
+ const { stdin, lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: (_text, options) => {
556
+ setOperatorQuestions(restoredQuestions.filter((_question, index) => index !== selectedIndex));
557
+ submittedOptions = options;
558
+ } }));
559
+ const initialFrame = lastFrame() ?? '';
560
+ expect(initialFrame).toContain('Open questions');
561
+ expect(initialFrame).toContain('inq-resumed-1');
562
+ expect(initialFrame).not.toContain('任意のタイミングで入力 · /exit で終了');
563
+ if (selectedIndex === 1) {
564
+ stdin.write(INK_TEST_KEYS.shiftDownArrow);
565
+ await flushInkStdin();
566
+ }
567
+ stdin.write('answer');
568
+ await flushInkStdin();
569
+ stdin.write('\r');
570
+ await flushInkStdin();
571
+ expect(submittedOptions).toEqual({
572
+ targetOpenQuestionId: restoredQuestions[selectedIndex]?.id,
573
+ });
574
+ if (restoredQuestions.length === 1) {
575
+ expect(lastFrame() ?? '').not.toContain('Open questions');
576
+ expect(lastFrame() ?? '').toContain('任意のタイミングで入力 · /exit で終了');
577
+ }
578
+ else {
579
+ expect(lastFrame() ?? '').toContain('Open questions');
580
+ expect(lastFrame() ?? '').toContain('inq-resumed-1');
581
+ expect(lastFrame() ?? '').not.toContain('任意のタイミングで入力 · /exit で終了');
582
+ setOperatorQuestions([]);
583
+ await flushInkStdin();
584
+ expect(lastFrame() ?? '').not.toContain('Open questions');
585
+ expect(lastFrame() ?? '').toContain('任意のタイミングで入力 · /exit で終了');
586
+ }
348
587
  });
349
588
  it('renders all activity log label kinds with distinct markers', () => {
350
589
  const viewModel = createTuiViewModel();
@@ -361,6 +600,12 @@ describe('IssueSessionTui', () => {
361
600
  });
362
601
  it('embeds pane titles on top borders without inner title rows', () => {
363
602
  const viewModel = createTuiViewModel();
603
+ viewModel.setDisplayState({
604
+ workers: {},
605
+ conductorOutput: null,
606
+ openQuestions: [createOpenQuestion({ id: 'inq-1', question: 'Answer?' })],
607
+ dispatchHold: { hold: false, heldEventCount: 0 },
608
+ });
364
609
  viewModel.appendActivityLog('operator', 'ping');
365
610
  const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: () => { } }));
366
611
  const frame = lastFrame() ?? '';
@@ -392,8 +637,8 @@ describe('IssueSessionTui', () => {
392
637
  await flushInkStdin();
393
638
  const capacity = computeOrchestrationLogVisibleLineCount(computeActivityPaneHeight({
394
639
  terminalRows: 24,
395
- hintLineCount: 1,
396
- openQuestionsPaneHeight: OPEN_QUESTIONS_PANE_MIN_HEIGHT,
640
+ hintLineCount: 2,
641
+ openQuestionsPaneHeight: 0,
397
642
  }));
398
643
  const stats = extractOrchestrationPaneFrameStats(lastFrame() ?? '');
399
644
  expect(lastFrame() ?? '').toContain('PgUp/PgDn');
@@ -414,7 +659,7 @@ describe('IssueSessionTui', () => {
414
659
  const capacity = computeActivityLogLineCapacity({
415
660
  terminalRows,
416
661
  hintLineCount: 1,
417
- openQuestionsPaneHeight: OPEN_QUESTIONS_PANE_MIN_HEIGHT,
662
+ openQuestionsPaneHeight: 0,
418
663
  });
419
664
  const stats = extractOrchestrationPaneFrameStats(lastFrame() ?? '');
420
665
  expect(capacity).toBeGreaterThan(0);
@@ -490,6 +735,7 @@ describe('IssueSessionTui', () => {
490
735
  createOpenQuestion({ id: 'inq-1', question: 'First question' }),
491
736
  createOpenQuestion({ id: 'inq-2', question: 'Second question' }),
492
737
  ],
738
+ dispatchHold: { hold: false, heldEventCount: 0 },
493
739
  });
494
740
  const { stdin, lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: () => { } }));
495
741
  expect(lastFrame() ?? '').toContain('▸ inq-1');
@@ -508,6 +754,7 @@ describe('IssueSessionTui', () => {
508
754
  createOpenQuestion({ id: 'inq-1', question: 'First question' }),
509
755
  createOpenQuestion({ id: 'inq-2', question: 'Second question' }),
510
756
  ],
757
+ dispatchHold: { hold: false, heldEventCount: 0 },
511
758
  });
512
759
  const { stdin, lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: () => { } }));
513
760
  stdin.write(INK_TEST_KEYS.downArrow);
@@ -524,6 +771,7 @@ describe('IssueSessionTui', () => {
524
771
  createOpenQuestion({ id: 'inq-1', question: 'First' }),
525
772
  createOpenQuestion({ id: 'inq-2', question: 'Second' }),
526
773
  ],
774
+ dispatchHold: { hold: false, heldEventCount: 0 },
527
775
  });
528
776
  let submitted = '';
529
777
  let submitOptions;
@@ -541,6 +789,22 @@ describe('IssueSessionTui', () => {
541
789
  expect(submitted).toBe('approved');
542
790
  expect(submitOptions).toEqual({ targetOpenQuestionId: 'inq-2' });
543
791
  });
792
+ it('submits ordinary input without an open-question target', async () => {
793
+ const viewModel = createTuiViewModel();
794
+ viewModel.setDisplayState({
795
+ workers: {},
796
+ conductorOutput: null,
797
+ openQuestions: [],
798
+ dispatchHold: { hold: false, heldEventCount: 0 },
799
+ });
800
+ const onSubmit = vi.fn();
801
+ const { stdin } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: onSubmit }));
802
+ stdin.write('follow-up');
803
+ await flushInkStdin();
804
+ stdin.write('\r');
805
+ await flushInkStdin();
806
+ expect(onSubmit).toHaveBeenCalledWith('follow-up', undefined);
807
+ });
544
808
  it('grows open questions pane for long selected question text', () => {
545
809
  const viewModel = createTuiViewModel();
546
810
  viewModel.setDisplayState({
@@ -553,6 +817,7 @@ describe('IssueSessionTui', () => {
553
817
  context: 'context '.repeat(10),
554
818
  }),
555
819
  ],
820
+ dispatchHold: { hold: false, heldEventCount: 0 },
556
821
  });
557
822
  const { lastFrame } = render(_jsx(IssueSessionTui, { viewModel: viewModel, onSubmit: () => { } }));
558
823
  const paneHeight = resolveOpenQuestionsPaneHeight(viewModel.getSnapshot().displayState.openQuestions);