@trenchwork/coder 1.4.0 → 1.5.1

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 (106) hide show
  1. package/dist/contracts/v1/agent.d.ts +2 -0
  2. package/dist/contracts/v1/agent.d.ts.map +1 -1
  3. package/dist/core/agent.d.ts.map +1 -1
  4. package/dist/core/agent.js +77 -2
  5. package/dist/core/agent.js.map +1 -1
  6. package/dist/core/bashCommandGuidance.d.ts.map +1 -1
  7. package/dist/core/bashCommandGuidance.js +19 -0
  8. package/dist/core/bashCommandGuidance.js.map +1 -1
  9. package/dist/core/contextManager.d.ts +10 -137
  10. package/dist/core/contextManager.d.ts.map +1 -1
  11. package/dist/core/contextManager.js +74 -540
  12. package/dist/core/contextManager.js.map +1 -1
  13. package/dist/core/errorClassification.d.ts.map +1 -1
  14. package/dist/core/errorClassification.js +8 -0
  15. package/dist/core/errorClassification.js.map +1 -1
  16. package/dist/core/hitl.d.ts +15 -0
  17. package/dist/core/hitl.d.ts.map +1 -1
  18. package/dist/core/hitl.js +20 -0
  19. package/dist/core/hitl.js.map +1 -1
  20. package/dist/core/hooks.d.ts.map +1 -1
  21. package/dist/core/hooks.js +42 -19
  22. package/dist/core/hooks.js.map +1 -1
  23. package/dist/core/keyResolution.d.ts +30 -0
  24. package/dist/core/keyResolution.d.ts.map +1 -0
  25. package/dist/core/keyResolution.js +38 -0
  26. package/dist/core/keyResolution.js.map +1 -0
  27. package/dist/core/permissionMode.d.ts +17 -2
  28. package/dist/core/permissionMode.d.ts.map +1 -1
  29. package/dist/core/permissionMode.js +20 -7
  30. package/dist/core/permissionMode.js.map +1 -1
  31. package/dist/core/reasoningFallback.d.ts +22 -0
  32. package/dist/core/reasoningFallback.d.ts.map +1 -0
  33. package/dist/core/reasoningFallback.js +22 -0
  34. package/dist/core/reasoningFallback.js.map +1 -0
  35. package/dist/core/sessionStore.js +34 -8
  36. package/dist/core/sessionStore.js.map +1 -1
  37. package/dist/core/slashCommands.d.ts.map +1 -1
  38. package/dist/core/slashCommands.js +0 -3
  39. package/dist/core/slashCommands.js.map +1 -1
  40. package/dist/core/taskCompletionDetector.d.ts.map +1 -1
  41. package/dist/core/taskCompletionDetector.js +10 -3
  42. package/dist/core/taskCompletionDetector.js.map +1 -1
  43. package/dist/core/toolRuntime.d.ts +1 -0
  44. package/dist/core/toolRuntime.d.ts.map +1 -1
  45. package/dist/core/toolRuntime.js +25 -2
  46. package/dist/core/toolRuntime.js.map +1 -1
  47. package/dist/core/turnTokenMeter.d.ts +19 -0
  48. package/dist/core/turnTokenMeter.d.ts.map +1 -0
  49. package/dist/core/turnTokenMeter.js +36 -0
  50. package/dist/core/turnTokenMeter.js.map +1 -0
  51. package/dist/headless/interactiveShell.d.ts +3 -3
  52. package/dist/headless/interactiveShell.d.ts.map +1 -1
  53. package/dist/headless/interactiveShell.js +125 -116
  54. package/dist/headless/interactiveShell.js.map +1 -1
  55. package/dist/plugins/providers/deepseek/index.js +4 -6
  56. package/dist/plugins/providers/deepseek/index.js.map +1 -1
  57. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
  58. package/dist/providers/openaiChatCompletionsProvider.js +33 -26
  59. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  60. package/dist/runtime/agentController.d.ts.map +1 -1
  61. package/dist/runtime/agentController.js +23 -7
  62. package/dist/runtime/agentController.js.map +1 -1
  63. package/dist/runtime/agentSession.d.ts.map +1 -1
  64. package/dist/runtime/agentSession.js +10 -3
  65. package/dist/runtime/agentSession.js.map +1 -1
  66. package/dist/tools/bashTools.d.ts +63 -0
  67. package/dist/tools/bashTools.d.ts.map +1 -1
  68. package/dist/tools/bashTools.js +186 -77
  69. package/dist/tools/bashTools.js.map +1 -1
  70. package/dist/tools/grepTools.d.ts.map +1 -1
  71. package/dist/tools/grepTools.js +41 -23
  72. package/dist/tools/grepTools.js.map +1 -1
  73. package/dist/tools/searchTools.d.ts.map +1 -1
  74. package/dist/tools/searchTools.js +18 -8
  75. package/dist/tools/searchTools.js.map +1 -1
  76. package/dist/tools/webTools.d.ts.map +1 -1
  77. package/dist/tools/webTools.js +10 -2
  78. package/dist/tools/webTools.js.map +1 -1
  79. package/dist/ui/ink/App.d.ts +6 -1
  80. package/dist/ui/ink/App.d.ts.map +1 -1
  81. package/dist/ui/ink/App.js +20 -2
  82. package/dist/ui/ink/App.js.map +1 -1
  83. package/dist/ui/ink/ChatStatic.d.ts.map +1 -1
  84. package/dist/ui/ink/ChatStatic.js +9 -2
  85. package/dist/ui/ink/ChatStatic.js.map +1 -1
  86. package/dist/ui/ink/InkPromptController.d.ts +17 -8
  87. package/dist/ui/ink/InkPromptController.d.ts.map +1 -1
  88. package/dist/ui/ink/InkPromptController.js +48 -21
  89. package/dist/ui/ink/InkPromptController.js.map +1 -1
  90. package/dist/ui/ink/StatusLine.d.ts +6 -7
  91. package/dist/ui/ink/StatusLine.d.ts.map +1 -1
  92. package/dist/ui/ink/StatusLine.js +9 -9
  93. package/dist/ui/ink/StatusLine.js.map +1 -1
  94. package/dist/ui/ink/markdownRender.d.ts +2 -0
  95. package/dist/ui/ink/markdownRender.d.ts.map +1 -0
  96. package/dist/ui/ink/markdownRender.js +76 -0
  97. package/dist/ui/ink/markdownRender.js.map +1 -0
  98. package/dist/ui/ink/narrationDedup.d.ts +28 -0
  99. package/dist/ui/ink/narrationDedup.d.ts.map +1 -0
  100. package/dist/ui/ink/narrationDedup.js +41 -0
  101. package/dist/ui/ink/narrationDedup.js.map +1 -0
  102. package/package.json +2 -1
  103. package/dist/core/hostedAuth.d.ts +0 -88
  104. package/dist/core/hostedAuth.d.ts.map +0 -1
  105. package/dist/core/hostedAuth.js +0 -219
  106. package/dist/core/hostedAuth.js.map +0 -1
@@ -17,8 +17,9 @@
17
17
  * facade implementing exactly those.
18
18
  */
19
19
  import { EventEmitter } from 'node:events';
20
- import { cyclePermissionMode, permissionHint, permissionStatusChip } from '../../core/permissionMode.js';
20
+ import { cyclePermissionMode, permissionHint, permissionModeStrip, permissionStatusChip } from '../../core/permissionMode.js';
21
21
  import { isGenericThinking } from '../../core/thinkingVerbs.js';
22
+ import { isNearDuplicateNarration, richerNarration } from './narrationDedup.js';
22
23
  /** Map RendererEventType (UnifiedUIRenderer) to ChatItem.kind. */
23
24
  const EVENT_KIND_MAP = {
24
25
  banner: 'banner',
@@ -172,6 +173,9 @@ export class InkPromptController extends EventEmitter {
172
173
  statusStreaming = null;
173
174
  activityMessage = null;
174
175
  mode = 'idle';
176
+ // outputTokens drives the spinner's `↑ N tokens`; contextPercent (from
177
+ // contextTokens/tokenLimit) drives the `% context left` chip. Two concerns,
178
+ // never the same number.
175
179
  metaInfo = {};
176
180
  // ms timestamp the current spinner run began — drives the elapsed counter in
177
181
  // StatusLine. Set when the UI transitions into a spinning state, cleared when
@@ -346,11 +350,15 @@ export class InkPromptController extends EventEmitter {
346
350
  const s = meta.elapsedSeconds % 60;
347
351
  this.metaInfo.sessionTime = `${m}:${s < 10 ? '0' : ''}${s}`;
348
352
  }
349
- if (typeof meta.tokensUsed === 'number' && meta.tokensUsed >= 0) {
350
- this.metaInfo.tokensUsed = meta.tokensUsed;
353
+ if (typeof meta.outputTokens === 'number' && Number.isFinite(meta.outputTokens) && meta.outputTokens >= 0) {
354
+ this.metaInfo.outputTokens = meta.outputTokens;
351
355
  }
352
- if (meta.tokensUsed != null && meta.tokenLimit != null) {
353
- this.metaInfo.contextPercent = meta.tokenLimit > 0 ? Math.round((meta.tokensUsed / meta.tokenLimit) * 100) : 0;
356
+ // NaN passes a `!= null` check a proxy that garbles prompt_tokens would
357
+ // render "NaN% context left". Only finite inputs with a positive window
358
+ // may update the chip.
359
+ if (typeof meta.contextTokens === 'number' && Number.isFinite(meta.contextTokens)
360
+ && typeof meta.tokenLimit === 'number' && Number.isFinite(meta.tokenLimit) && meta.tokenLimit > 0) {
361
+ this.metaInfo.contextPercent = Math.round((meta.contextTokens / meta.tokenLimit) * 100);
354
362
  }
355
363
  this.rerender();
356
364
  }
@@ -480,17 +488,15 @@ export class InkPromptController extends EventEmitter {
480
488
  // non-delta path carries the full text in finalText with an empty
481
489
  // streamingText. A tools run emits a "Next steps" addendum as a
482
490
  // distinct response. So: commit the buffered body if present, then
483
- // commit finalText when it is real and not a duplicate of the body.
491
+ // commit finalText _pushAssistant collapses it into the body when the
492
+ // canonical text is just the streamed body with its punctuation restored.
484
493
  const incoming = (finalText || '').trim();
485
494
  const buffered = (this.streamingText || '').trim();
486
495
  this.streamingText = '';
487
- const additions = [];
488
496
  if (buffered)
489
- additions.push({ id: `r-${Date.now()}-b-${this.idSeq++}`, kind: 'assistant', text: buffered });
490
- if (incoming && incoming !== buffered)
491
- additions.push({ id: `r-${Date.now()}-c-${this.idSeq++}`, kind: 'assistant', text: incoming });
492
- if (additions.length)
493
- this.history = [...this.history, ...additions];
497
+ this._pushAssistant(buffered);
498
+ if (incoming)
499
+ this._pushAssistant(incoming);
494
500
  // Single rerender: ChatStatic gains the entries AND the live region
495
501
  // (streamingMessage) goes null in the same commit — atomic swap, no
496
502
  // duplicate of the streamed body in scrollback.
@@ -501,12 +507,32 @@ export class InkPromptController extends EventEmitter {
501
507
  return;
502
508
  const text = this.streamingText.trim();
503
509
  this.streamingText = '';
504
- if (text) {
505
- this.history = [...this.history, { id: `r-${Date.now()}-${this.idSeq++}`, kind: 'assistant', text }];
506
- }
510
+ if (text)
511
+ this._pushAssistant(text);
507
512
  // No rerender — the caller is about to push another history entry
508
513
  // and rerender once. Avoid the double commit.
509
514
  }
515
+ /**
516
+ * Append assistant narration, collapsing an adjacent near-duplicate into one
517
+ * richer entry. The streamed body and the provider's canonical
518
+ * message.complete are often the same sentence differing only in punctuation;
519
+ * appending both glues a visible duplicate ("…upgrade planI'll start…").
520
+ * Dedups against the LAST history entry, so it also catches the same text
521
+ * arriving via two separate commit calls.
522
+ */
523
+ _pushAssistant(text) {
524
+ const t = (text || '').trim();
525
+ if (!t)
526
+ return;
527
+ const last = this.history[this.history.length - 1];
528
+ if (last && last.kind === 'assistant' && isNearDuplicateNarration(last.text, t)) {
529
+ const keep = richerNarration(last.text, t);
530
+ if (keep !== last.text)
531
+ this.history = [...this.history.slice(0, -1), { ...last, text: keep }];
532
+ return;
533
+ }
534
+ this.history = [...this.history, { id: `r-${Date.now()}-${this.idSeq++}`, kind: 'assistant', text: t }];
535
+ }
510
536
  /** Shift+Tab from the Prompt: advance the permission mode and repaint. */
511
537
  cyclePermissionModeFromUI() {
512
538
  const next = cyclePermissionMode();
@@ -547,15 +573,16 @@ export class InkPromptController extends EventEmitter {
547
573
  streamingMessage: this.streamingText || null,
548
574
  status: {
549
575
  message: composedStatus,
550
- modeMessage: modeChips,
551
576
  spinning,
552
577
  startTime: this.spinStart,
553
- tokensUsed: this.metaInfo.tokensUsed ?? null,
578
+ tokensUsed: this.metaInfo.outputTokens ?? null,
554
579
  thinkingGerund,
555
580
  },
556
581
  suggestions: this.suggestions.length ? this.suggestions : undefined,
557
582
  inlinePanel: this.inlinePanel && this.inlinePanel.length ? this.inlinePanel : undefined,
583
+ permissionStrip: permissionModeStrip(),
558
584
  permissionHint: permissionHint(),
585
+ metaLine: modeChips,
559
586
  queuedPrompts: this.queuedPrompts.length ? this.queuedPrompts : undefined,
560
587
  menu: this.menuOpen ? {
561
588
  items: this.menuItems,
@@ -623,10 +650,10 @@ export class InkPromptController extends EventEmitter {
623
650
  });
624
651
  }
625
652
  /**
626
- * The dim mode line under the spinner. Claude Code keeps this minimal and
627
- * emoji-free: product, model, context left, then active toggles. The cwd and
628
- * elapsed time deliberately don't live here (cwd is in the welcome box;
629
- * elapsed rides the spinner).
653
+ * The dim meta line under the toggle-modes strip (below the input box).
654
+ * Claude Code keeps this minimal and emoji-free: product, model, context
655
+ * left, then active toggles. The cwd and elapsed time deliberately don't
656
+ * live here (cwd is in the welcome box; elapsed rides the spinner).
630
657
  */
631
658
  formatModeChips() {
632
659
  const parts = ['trenchwork-coder'];
@@ -1 +1 @@
1
- {"version":3,"file":"InkPromptController.js","sourceRoot":"","sources":["../../../src/ui/ink/InkPromptController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InkPromptController.js","sourceRoot":"","sources":["../../../src/ui/ink/InkPromptController.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC9H,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAuDhF,kEAAkE;AAClE,MAAM,cAAc,GAAqC;IACvD,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,aAAa,EAAE,YAAY;IAC3B,GAAG,EAAE,QAAQ;IACb,SAAS,EAAE,QAAQ;CACpB,CAAC;AAMF;;;;;GAKG;AACH,MAAM,eAAgB,SAAQ,YAAY;IAIX;IAHrB,IAAI,GAAqB,IAAI,GAAG,EAAE,CAAC;IACnC,cAAc,GAAqC,IAAI,CAAC;IAChE,8DAA8D;IAC9D,YAA6B,KAA0B;QACrD,KAAK,EAAE,CAAC;QADmB,UAAK,GAAL,KAAK,CAAqB;IAEvD,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,OAAe;QACpC,iEAAiE;QACjE,2DAA2D;QAC3D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC;gBAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,yCAAyC,CAAC,CAAC;QACjF,CAAC;QAED,mEAAmE;QACnE,+DAA+D;QAC/D,yDAAyD;QACzD,+DAA+D;QAC/D,gDAAgD;QAChD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO;QAEvD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,4DAA4D;YAC5D,+DAA+D;YAC/D,yDAAyD;YACzD,iDAAiD;YACjD,8DAA8D;YAC9D,0DAA0D;YAC1D,yDAAyD;YACzD,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,gEAAgE;YAChE,6DAA6D;YAC7D,6DAA6D;YAC7D,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,kEAAkE;QAClE,gEAAgE;QAChE,8CAA8C;QAC9C,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3H,CAAC;IAED,YAAY,CAAC,EAAe;QAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,QAAyE,EAAE;QACtF,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACrC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACxC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;oBAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBACnC,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK;wBAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBAC3D,CAAC,CAAC,KAAK,CAAC,CAAC;gBACX,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,OAAgB;QAC5B,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,oEAAoE;IACpE,WAAW,KAAwD,CAAC;IAEpE,oEAAoE;IACpE,mBAAmB,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAE/C;;;;OAIG;IACH,oBAAoB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACjD,uBAAuB,KAAa,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/C,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,oBAAoB,CAAC,EAAW,IAAU,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChF,gBAAgB,CAAC,OAAiB,IAAU,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnF,kBAAkB,CAAC,IAAY,IAAU,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAChF;AAsDD,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IAClC,SAAS,CAAkB;IAC5C,mEAAmE;IACnE,4CAA4C;IAC5C,8DAA8D;IACtD,SAAS,GAAQ,IAAI,CAAC;IAC9B,8DAA8D;IACtD,KAAK,GAAQ,IAAI,CAAC;IAC1B,8DAA8D;IACtD,YAAY,GAAQ,IAAI,CAAC;IACzB,IAAI,GAAuB,IAAI,CAAC;IACvB,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACjC,KAAK,CAAW;IAChB,MAAM,CAAW;IAElC,qEAAqE;IACrE,sEAAsE;IACtE,mEAAmE;IACnE,iDAAiD;IACzC,aAAa,GAAG,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,6EAA6E;IAC7E,uDAAuD;IAC/C,KAAK,GAAG,CAAC,CAAC;IAElB,iEAAiE;IACzD,UAAU,GAAkB,IAAI,CAAC;IACjC,cAAc,GAAkB,IAAI,CAAC;IACrC,eAAe,GAAkB,IAAI,CAAC;IACtC,eAAe,GAAkB,IAAI,CAAC;IACtC,IAAI,GAAS,MAAM,CAAC;IAC5B,uEAAuE;IACvE,4EAA4E;IAC5E,yBAAyB;IACjB,QAAQ,GAAwJ,EAAE,CAAC;IAC3K,6EAA6E;IAC7E,8EAA8E;IAC9E,8DAA8D;IACtD,SAAS,GAAkB,IAAI,CAAC;IAChC,OAAO,GAAe,EAAE,CAAC;IACzB,WAAW,GAAiB,EAAE,CAAC;IAC/B,WAAW,GAAoB,IAAI,CAAC;IACpC,UAAU,GAAG,KAAK,CAAC;IACnB,QAAQ,GAAkB,eAAe,CAAC;IAC1C,YAAY,GAAkB,IAAI,CAAC;IACnC,eAAe,GAAoB;QACzC,QAAQ,EAAE,IAAI;QACd,kBAAkB,EAAE,IAAI;QACxB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,IAAI;KACjB,CAAC;IACM,MAAM,GAAG,EAAE,CAAC;IACpB,0EAA0E;IACzD,aAAa,GAAa,EAAE,CAAC;IAC9C,8DAA8D;IACtD,eAAe,GAAa,EAAE,CAAC;IACvC,uEAAuE;IAC/D,aAAa,GAAoC,IAAI,CAAC;IACtD,YAAY,GAA6C,IAAI,CAAC;IAC9D,SAAS,GAAe,EAAE,CAAC;IAEnC,6EAA6E;IAC7E,2EAA2E;IAC3E,8EAA8E;IAC9E,gFAAgF;IACxE,iBAAiB,GAAG,KAAK,CAAC;IAC1B,aAAa,GAAa,EAAE,CAAC;IAC7B,SAAS,CAAU;IACnB,QAAQ,GAAG,KAAK,CAAC;IACjB,OAAO,GAAG,KAAK,CAAC;IAChB,QAAQ,GAAG,KAAK,CAAC;IACzB,4EAA4E;IAC5E,yEAAyE;IACzE,2EAA2E;IAC3E,8EAA8E;IACtE,YAAY,CAAc;IACjB,YAAY,GAAkB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9F,YAAY,KAAe,EAAE,MAAgB,EAAE,SAA0B;QACvE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,iEAAiE;IAEjE;;;;;;;OAOG;IACH,KAAK,KAAW,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAEzC,kEAAkE;IAClE,SAAS,KAAoB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEhD,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC7C,MAAM,CAAC,KAAK,CAAC;gBACb,MAAM,CAAC,OAAO,CAAC;gBACf,MAAM,CAAC,UAAU,CAAC;aACnB,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;gBAC3C,8DAA8D;gBAC9D,KAAK,EAAE,IAAI,CAAC,KAAY;gBACxB,8DAA8D;gBAC9D,MAAM,EAAE,IAAI,CAAC,MAAa;gBAC1B,gEAAgE;gBAChE,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,kEAAkE;YAClE,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC;YAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,KAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEhC,sGAAsG;IACtG,MAAM,KAAW,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACnC,WAAW,KAAW,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACxC,YAAY,KAAmD,CAAC;IAEhE;;;;;;;OAOG;IACH,WAAW;QACT,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACnE,IAAI,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,6EAA6E;YAC7E,IAAI,CAAC;gBAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACzE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;gBAC3C,8DAA8D;gBAC9D,KAAK,EAAE,IAAI,CAAC,KAAY;gBACxB,8DAA8D;gBAC9D,MAAM,EAAE,IAAI,CAAC,MAAa;gBAC1B,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,iEAAiE;IAEjE,gBAAgB,CAAC,OAAsB,IAAU,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChH,iBAAiB,CAAC,OAAsB,IAAU,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrH,iBAAiB,CAAC,KAAoB,IAAU,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAClH,aAAa,CAAC,MAAqF;QACjG,IAAI,MAAM,IAAI,MAAM;YAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QACpE,IAAI,UAAU,IAAI,MAAM;YAAE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QAChF,IAAI,WAAW,IAAI,MAAM;YAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QACnF,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACD,cAAc;QACZ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAChF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACD,kBAAkB,CAAC,OAAsB,IAAU,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAErG,YAAY,CAAC,SAAkB,IAAU,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzG,OAAO,KAAW,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAErC,eAAe,CAAC,UAAyB;QACvC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,UAAU,CAAC;YAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAAC,CAAC;IAC1F,CAAC;IAED,aAAa,CAAC,IAAiI;QAC7I,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;YAChH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;YAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QAC9D,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC;YAC1G,IAAI,CAAC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACjD,CAAC;QACD,0EAA0E;QAC1E,wEAAwE;QACxE,uBAAuB;QACvB,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;eAC5E,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACpG,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,eAAe,CAAC,OAA4D;QAC1E,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;QAClF,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;QAC3F,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,aAAa,CAAC,IAAgD;QAC5D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3E,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,iEAAiE;IAEjE,cAAc,CAAC,OAAiC;QAC9C,IAAI,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;QAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACD,YAAY,CAAC,OAAgB,IAAU,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtG,kBAAkB;QAChB,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACvF,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,CAAC;IAC1C,CAAC;IACD,WAAW,KAAmB,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,WAAW,CAAC,IAAkB,IAAU,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChG,UAAU;QACR,IAAI,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACvF,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC;IAClC,CAAC;IACD,WAAW,KAAmB,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,kBAAkB,KAAgC,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAEhF,8DAA8D;IAE9D,oBAAoB,CAAC,QAA6B;QAChD,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,cAAc,CAAC,KAAe,IAAU,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzF,gBAAgB,KAAW,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtE,mBAAmB,KAAc,OAAO,IAAI,CAAC,CAAC,CAAC;IAE/C,eAAe,CAAC,IAAmB,IAAU,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzF,eAAe,KAAoB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,iBAAiB,KAAW,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAExE,OAAO,CAAC,KAAiB,EAAE,OAAkD,EAAE,QAAyC;QACtH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IACD,SAAS,KAAW,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7C,YAAY,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjD,gEAAgE;IACxD,WAAW,CAAC,IAAqB;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,QAAQ,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,oDAAoD,CAAC,CAAC;QAAC,CAAC;IAC1G,CAAC;IAED,iEAAiE;IAEjE,aAAa,CAAC,OAAgB,IAAU,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrF,WAAW,CAAC,IAAmB,IAAU,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzG,aAAa,CAAC,IAAmB,IAAU,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpE,WAAW,KAAoB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtD;;;;;;OAMG;IACH,SAAS,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,SAAS,KAAa,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,SAAS,CAAC,IAAY,EAAE,UAAmB,IAAU,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC3F,KAAK,KAAW,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEpD,qEAAqE;IACrE,oBAAoB,CAAC,EAAW,IAAU,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC3F,gBAAgB,CAAC,OAAiB,IAAU,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAClI,kBAAkB,CAAC,KAAe,IAAU,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACxH,kBAAkB,CAAC,IAAY;QAC7B,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACrG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,iEAAiE;IAEjE,8DAA8D;IAC9D,WAAW,KAAU,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAExC,iEAAiE;IAEjE,6DAA6D;IAC7D,mBAAmB,CAAC,IAAc;QAChC,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED;;;;;;;;OAQG;IACH,qBAAqB,CAAC,KAAa;QACjC,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAChC,sEAAsE;QACtE,gEAAgE;QAChE,kEAAkE;QAClE,gEAAgE;QAChE,mEAAmE;QACnE,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,QAAQ;YAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,QAAQ;YAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,oEAAoE;QACpE,oEAAoE;QACpE,gDAAgD;QAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,IAAI;YAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,kEAAkE;QAClE,8CAA8C;IAChD,CAAC;IAED;;;;;;;OAOG;IACK,cAAc,CAAC,IAAY;QACjC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAChF,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3C,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/F,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED,0EAA0E;IAClE,yBAAyB;QAC/B,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,IAAY,IAAU,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvE,cAAc,CAAC,OAAgB,IAAU,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAEtF,sBAAsB,CAAC,OAA+B,IAAU,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChH,qBAAqB,KAAW,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAErE,QAAQ;QACd,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QACvB,IAAI,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;IACtF,CAAC;IAEO,SAAS;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;eACrC,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;eACzD,IAAI,CAAC,eAAe;eACpB,IAAI,CAAC,UAAU,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5E,MAAM,cAAc,GAAG,QAAQ,IAAI,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACrE,yEAAyE;QACzE,sEAAsE;QACtE,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,KAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAa,EAAE;YACnD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,gBAAgB,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;YAC5C,MAAM,EAAE;gBACN,OAAO,EAAE,cAAc;gBACvB,QAAQ;gBACR,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI;gBAC9C,cAAc;aACf;YACD,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACnE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACvF,eAAe,EAAE,mBAAmB,EAAE;YACtC,cAAc,EAAE,cAAc,EAAE;YAChC,QAAQ,EAAE,SAAS;YACnB,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YACzE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpB,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,QAAQ,EAAE,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpD,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;aACvC,CAAC,CAAC,CAAC,SAAS;YACb,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,CAAC,MAAM;gBACpB,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE;oBACzB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;wBACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBACzB,OAAO;oBACT,CAAC;oBACD,uDAAuD;oBACvD,4DAA4D;oBAC5D,4DAA4D;oBAC5D,0DAA0D;oBAC1D,wDAAwD;oBACxD,2DAA2D;oBAC3D,2DAA2D;oBAC3D,qDAAqD;oBACrD,0DAA0D;oBAC1D,EAAE;oBACF,+DAA+D;oBAC/D,4DAA4D;oBAC5D,gEAAgE;oBAChE,kEAAkE;oBAClE,gEAAgE;oBAChE,wDAAwD;oBACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC5D,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BAC5B,IAAI,CAAC,OAAO,GAAG;gCACb,GAAG,IAAI,CAAC,OAAO;gCACf,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;6BACvE,CAAC;wBACJ,CAAC;oBACH,CAAC;oBACD,oEAAoE;oBACpE,kCAAkC;oBAClC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;wBACjG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACjC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG;4BAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;oBAClE,CAAC;oBACD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;oBACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBACD,QAAQ,EAAE,GAAG,EAAE;oBACb,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC/B,CAAC;gBACD,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE;gBAC7D,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE;gBAC/D,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;gBAC3C,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE;gBACzD,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBAC/D,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE;gBACvD,OAAO,EAAE,IAAI,CAAC,aAAa;gBAC3B,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,eAAe;QACrB,MAAM,KAAK,GAAa,CAAC,kBAAkB,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,IAAI,IAAI,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,gBAAgB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;QACxC,IAAI,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,KAAK,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,YAAY;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAClE,0EAA0E;QAC1E,sDAAsD;QACtD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAe,EACf,MAAgB,EAChB,SAA0B;IAE1B,OAAO,IAAI,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * StatusLine — Ink-rendered working line. The CLI's renderer is Ink-only;
3
- * this component owns the spinner / activity message / mode chips row.
3
+ * this component owns the spinner / activity message row.
4
4
  *
5
5
  * Claude Code shape (see src/ui/CLAUDE_CODE_UX.md): a sparkle that animates
6
6
  * through `· ✢ ✳ ✶ ✻ ✽`, the current activity, then dim meta
7
- * `(Ns · ↑ X tokens · esc to interrupt)`. A second dim line carries the mode
8
- * chips. The component self-ticks (its own interval) so the sparkle spins and
9
- * the elapsed counter advances between host rerenders — Ink reconciles it to a
10
- * stable fiber, so the interval survives the controller's prop updates.
7
+ * `(Ns · ↑ X tokens · esc to interrupt)`. The component self-ticks (its own
8
+ * interval) so the sparkle spins and the elapsed counter advances between host
9
+ * rerenders — Ink reconciles it to a stable fiber, so the interval survives
10
+ * the controller's prop updates. The mode/meta chips line lives below the
11
+ * input box (App.metaLine), not here.
11
12
  *
12
13
  * Render contract: this component is the *only* writer for its rows. No
13
14
  * console.log / process.stdout.write side-effects.
@@ -16,8 +17,6 @@ import React from 'react';
16
17
  export interface StatusLineProps {
17
18
  /** Active line shown next to the spinner. Empty/undefined hides the row. */
18
19
  message?: string | null;
19
- /** Optional secondary line (mode chips). */
20
- modeMessage?: string | null;
21
20
  /** Animate the sparkle + show elapsed/token meta. */
22
21
  spinning?: boolean;
23
22
  /** ms timestamp the current activity began, for the elapsed counter. */
@@ -1 +1 @@
1
- {"version":3,"file":"StatusLine.d.ts","sourceRoot":"","sources":["../../../src/ui/ink/StatusLine.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAYD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyDhD,CAAC"}
1
+ {"version":3,"file":"StatusLine.d.ts","sourceRoot":"","sources":["../../../src/ui/ink/StatusLine.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,MAAM,WAAW,eAAe;IAC9B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAYD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA+ChD,CAAC"}
@@ -1,14 +1,15 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  /**
3
3
  * StatusLine — Ink-rendered working line. The CLI's renderer is Ink-only;
4
- * this component owns the spinner / activity message / mode chips row.
4
+ * this component owns the spinner / activity message row.
5
5
  *
6
6
  * Claude Code shape (see src/ui/CLAUDE_CODE_UX.md): a sparkle that animates
7
7
  * through `· ✢ ✳ ✶ ✻ ✽`, the current activity, then dim meta
8
- * `(Ns · ↑ X tokens · esc to interrupt)`. A second dim line carries the mode
9
- * chips. The component self-ticks (its own interval) so the sparkle spins and
10
- * the elapsed counter advances between host rerenders — Ink reconciles it to a
11
- * stable fiber, so the interval survives the controller's prop updates.
8
+ * `(Ns · ↑ X tokens · esc to interrupt)`. The component self-ticks (its own
9
+ * interval) so the sparkle spins and the elapsed counter advances between host
10
+ * rerenders — Ink reconciles it to a stable fiber, so the interval survives
11
+ * the controller's prop updates. The mode/meta chips line lives below the
12
+ * input box (App.metaLine), not here.
12
13
  *
13
14
  * Render contract: this component is the *only* writer for its rows. No
14
15
  * console.log / process.stdout.write side-effects.
@@ -23,7 +24,7 @@ const LUNAR = '#e8e9ed';
23
24
  function fmtTokens(n) {
24
25
  return n >= 1000 ? `${(n / 1000).toFixed(1)}k` : String(n);
25
26
  }
26
- export const StatusLine = ({ message, modeMessage, spinning, startTime, tokensUsed, thinkingGerund }) => {
27
+ export const StatusLine = ({ message, spinning, startTime, tokensUsed, thinkingGerund }) => {
27
28
  const [frame, setFrame] = useState(0);
28
29
  const [verb, setVerb] = useState(() => pickThinkingVerb());
29
30
  useEffect(() => {
@@ -44,8 +45,7 @@ export const StatusLine = ({ message, modeMessage, spinning, startTime, tokensUs
44
45
  }, [spinning, thinkingGerund]);
45
46
  const label = spinning && thinkingGerund ? `${verb}…` : message;
46
47
  const hasMessage = Boolean(label && label.length);
47
- const hasMode = Boolean(modeMessage && modeMessage.length);
48
- if (!hasMessage && !hasMode)
48
+ if (!hasMessage)
49
49
  return null;
50
50
  const glyph = STAR_FRAMES[frame % STAR_FRAMES.length];
51
51
  // Meta + sparkle only appear while working; an idle status line is just the
@@ -61,6 +61,6 @@ export const StatusLine = ({ message, modeMessage, spinning, startTime, tokensUs
61
61
  }
62
62
  meta.push('esc to interrupt');
63
63
  }
64
- return (_jsxs(Box, { flexDirection: "column", children: [hasMessage ? (_jsxs(Box, { children: [spinning ? _jsxs(Text, { color: STARLIGHT, children: [glyph, " "] }) : null, _jsx(Text, { color: LUNAR, children: label }), meta.length ? _jsx(Text, { dimColor: true, children: ` (${meta.join(' · ')})` }) : null] })) : null, hasMode ? (_jsx(Box, { children: _jsx(Text, { dimColor: true, children: modeMessage }) })) : null] }));
64
+ return (_jsxs(Box, { children: [spinning ? _jsxs(Text, { color: STARLIGHT, children: [glyph, " "] }) : null, _jsx(Text, { color: LUNAR, children: label }), meta.length ? _jsx(Text, { dimColor: true, children: ` (${meta.join(' · ')})` }) : null] }));
65
65
  };
66
66
  //# sourceMappingURL=StatusLine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusLine.js","sourceRoot":"","sources":["../../../src/ui/ink/StatusLine.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StatusLine.js","sourceRoot":"","sources":["../../../src/ui/ink/StatusLine.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function renderMarkdown(text: string): string;
2
+ //# sourceMappingURL=markdownRender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdownRender.d.ts","sourceRoot":"","sources":["../../../src/ui/ink/markdownRender.ts"],"names":[],"mappings":"AAkEA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYnD"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Render assistant Markdown to themed ANSI for the terminal transcript, the way
3
+ * Claude Code does. Applied at COMMIT time (when an assistant turn becomes a
4
+ * permanent <Static> ChatItem) — the live streaming region stays plain so
5
+ * formatting solidifies once, with no per-frame reflow.
6
+ *
7
+ * Space Black palette (mirrors src/ui/theme.ts): headings/strong in lunar,
8
+ * inline code + code blocks in ice-cyan, links in starlight, rules/quotes dim.
9
+ */
10
+ import { marked } from 'marked';
11
+ import { markedTerminal } from 'marked-terminal';
12
+ import chalk from 'chalk';
13
+ const LUNAR = '#e8e9ed';
14
+ const ICE = '#64d2ff';
15
+ const STARLIGHT = '#82aaff';
16
+ const ASH = '#8b8e96';
17
+ let configured = false;
18
+ function configure() {
19
+ if (configured)
20
+ return;
21
+ marked.use(markedTerminal({
22
+ // Headings as bold text, no leading `##`.
23
+ showSectionPrefix: false,
24
+ reflowText: false,
25
+ tab: 2,
26
+ heading: chalk.hex(LUNAR).bold,
27
+ firstHeading: chalk.hex(LUNAR).bold,
28
+ strong: chalk.hex(LUNAR).bold,
29
+ em: chalk.italic,
30
+ codespan: chalk.hex(ICE),
31
+ code: chalk.hex(ICE),
32
+ link: chalk.hex(STARLIGHT).underline,
33
+ href: chalk.hex(STARLIGHT).underline,
34
+ blockquote: chalk.hex(ASH).italic,
35
+ hr: chalk.hex(ASH),
36
+ listitem: (text) => text,
37
+ }));
38
+ configured = true;
39
+ }
40
+ /**
41
+ * Render Markdown to a themed ANSI string. Returns the input unchanged if it
42
+ * contains no Markdown-ish syntax (cheap fast-path) or if rendering throws —
43
+ * plain prose must never be mangled or dropped.
44
+ */
45
+ // Trigger rendering ONLY on STRUCTURAL Markdown or unambiguous paired inline
46
+ // syntax (`**bold**`, `` `code` ``). Bare single `*` / `_` are deliberately
47
+ // excluded: prose and math like "2*3*4" or "a_b_c" are valid CommonMark
48
+ // emphasis and marked would silently delete the markers (and the text between),
49
+ // corrupting plain output. Better to under-render than to mangle.
50
+ const MARKDOWN_RE = new RegExp([
51
+ '(?:^|\\n) {0,3}#{1,6} ', // ATX heading
52
+ '```', // fenced code block
53
+ '(?:^|\\n) {0,3}> ', // blockquote
54
+ '(?:^|\\n) {0,3}(?:[-+]|\\d+\\.) +\\S', // bullet (-, +) or ordered list
55
+ '(?:^|\\n) {0,3}\\|.*\\|.*\\n {0,3}\\|? *:?-{2,}', // table: header row + separator
56
+ '\\[[^\\]\\n]+\\]\\([^)\\n]+\\)', // [text](url) link
57
+ '`[^`\\n]+`', // `inline code`
58
+ '\\*\\*[^*\\n]+\\*\\*', // **bold**
59
+ ].join('|'));
60
+ export function renderMarkdown(text) {
61
+ if (!text)
62
+ return text;
63
+ // Fast path: no structural Markdown → leave the prose exactly as-is.
64
+ if (!MARKDOWN_RE.test(text))
65
+ return text;
66
+ try {
67
+ configure();
68
+ const out = marked.parse(text, { async: false });
69
+ // marked appends a trailing newline; keep the body tight for the transcript.
70
+ return typeof out === 'string' ? out.replace(/\n+$/, '') : text;
71
+ }
72
+ catch {
73
+ return text;
74
+ }
75
+ }
76
+ //# sourceMappingURL=markdownRender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdownRender.js","sourceRoot":"","sources":["../../../src/ui/ink/markdownRender.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B,MAAM,GAAG,GAAG,SAAS,CAAC;AAEtB,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,SAAS,SAAS;IAChB,IAAI,UAAU;QAAE,OAAO;IACvB,MAAM,CAAC,GAAG,CACR,cAAc,CAAC;QACb,0CAA0C;QAC1C,iBAAiB,EAAE,KAAK;QACxB,UAAU,EAAE,KAAK;QACjB,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI;QAC9B,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI;QACnC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI;QAC7B,EAAE,EAAE,KAAK,CAAC,MAAM;QAChB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QACxB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS;QACpC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS;QACpC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;QACjC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAClB,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI;KACjC,CAAqC,CACvC,CAAC;IACF,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,6EAA6E;AAC7E,4EAA4E;AAC5E,wEAAwE;AACxE,gFAAgF;AAChF,kEAAkE;AAClE,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B;IACE,wBAAwB,EAAE,cAAc;IACxC,KAAK,EAAE,oBAAoB;IAC3B,mBAAmB,EAAE,aAAa;IAClC,sCAAsC,EAAE,gCAAgC;IACxE,iDAAiD,EAAE,gCAAgC;IACnF,gCAAgC,EAAE,mBAAmB;IACrD,YAAY,EAAE,gBAAgB;IAC9B,sBAAsB,EAAE,WAAW;CACpC,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,qEAAqE;IACrE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,SAAS,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAW,CAAC;QAC3D,6EAA6E;QAC7E,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Collapse adjacent near-duplicate assistant narration.
3
+ *
4
+ * A provider's streamed tokens and its reassembled `message.complete` are
5
+ * frequently the SAME sentence differing only in punctuation/whitespace (the
6
+ * stream drops the commas the final text has back). Committing both glues a
7
+ * visible duplicate into scrollback:
8
+ * "…proposing an upgrade planI'll start by exploring … an upgrade plan."
9
+ * These helpers decide when two adjacent assistant texts are the same logical
10
+ * message so the renderer keeps only the richer one.
11
+ *
12
+ * Pure (no Ink/React import) so it unit-tests directly, per the repo's
13
+ * pure-helper convention (see markdownRender.ts).
14
+ */
15
+ /** Lowercase, collapse runs of whitespace + punctuation to a single space. */
16
+ export declare function normalizeNarration(s: string): string;
17
+ /**
18
+ * True when `a` and `b` are the same logical narration: identical once
19
+ * normalized, OR one is a near-superset of the other (the canonical version
20
+ * adds punctuation/words around the same core). The 0.6 overlap floor keeps
21
+ * genuinely different adjacent messages — e.g. a response body and a short
22
+ * "Next steps" addendum — from being collapsed.
23
+ */
24
+ export declare function isNearDuplicateNarration(a: string, b: string): boolean;
25
+ /** The richer rendering of two same-logical narrations (prefer the longer —
26
+ * usually the canonical message.complete that kept its punctuation). */
27
+ export declare function richerNarration(a: string, b: string): string;
28
+ //# sourceMappingURL=narrationDedup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrationDedup.d.ts","sourceRoot":"","sources":["../../../src/ui/ink/narrationDedup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAOtE;AAED;yEACyE;AACzE,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Collapse adjacent near-duplicate assistant narration.
3
+ *
4
+ * A provider's streamed tokens and its reassembled `message.complete` are
5
+ * frequently the SAME sentence differing only in punctuation/whitespace (the
6
+ * stream drops the commas the final text has back). Committing both glues a
7
+ * visible duplicate into scrollback:
8
+ * "…proposing an upgrade planI'll start by exploring … an upgrade plan."
9
+ * These helpers decide when two adjacent assistant texts are the same logical
10
+ * message so the renderer keeps only the richer one.
11
+ *
12
+ * Pure (no Ink/React import) so it unit-tests directly, per the repo's
13
+ * pure-helper convention (see markdownRender.ts).
14
+ */
15
+ /** Lowercase, collapse runs of whitespace + punctuation to a single space. */
16
+ export function normalizeNarration(s) {
17
+ return (s || '').toLowerCase().replace(/[\s\p{P}]+/gu, ' ').trim();
18
+ }
19
+ /**
20
+ * True when `a` and `b` are the same logical narration: identical once
21
+ * normalized, OR one is a near-superset of the other (the canonical version
22
+ * adds punctuation/words around the same core). The 0.6 overlap floor keeps
23
+ * genuinely different adjacent messages — e.g. a response body and a short
24
+ * "Next steps" addendum — from being collapsed.
25
+ */
26
+ export function isNearDuplicateNarration(a, b) {
27
+ const na = normalizeNarration(a);
28
+ const nb = normalizeNarration(b);
29
+ if (!na || !nb)
30
+ return false;
31
+ if (na === nb)
32
+ return true;
33
+ const [short, long] = na.length <= nb.length ? [na, nb] : [nb, na];
34
+ return long.includes(short) && short.length >= long.length * 0.6;
35
+ }
36
+ /** The richer rendering of two same-logical narrations (prefer the longer —
37
+ * usually the canonical message.complete that kept its punctuation). */
38
+ export function richerNarration(a, b) {
39
+ return b.length >= a.length ? b : a;
40
+ }
41
+ //# sourceMappingURL=narrationDedup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrationDedup.js","sourceRoot":"","sources":["../../../src/ui/ink/narrationDedup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAAC,CAAS;IAC1C,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACrE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,CAAS,EAAE,CAAS;IAC3D,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AACnE,CAAC;AAED;yEACyE;AACzE,MAAM,UAAU,eAAe,CAAC,CAAS,EAAE,CAAS;IAClD,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trenchwork/coder",
3
- "version": "1.4.0",
3
+ "version": "1.5.1",
4
4
  "description": "Claude Code–class Ink TUI agent for DeepSeek v4 Pro (max thought, ultracode always on). Live follow-up queue, Shift+Tab permission modes, colored diffs, adversarial verifier — your keys, no login. Independent; inspired by Project Glasswing.",
5
5
  "deepseek": {
6
6
  "rulebookSchema": "src/contracts/schemas/agent-rules.schema.json"
@@ -106,6 +106,7 @@
106
106
  "gradient-string": "^3.0.0",
107
107
  "ink": "^7.0.1",
108
108
  "ink-spinner": "^5.0.0",
109
+ "marked-terminal": "^7.3.0",
109
110
  "nanospinner": "1.2.2",
110
111
  "open": "^11.0.0",
111
112
  "openai": "^6.10.0",
@@ -1,88 +0,0 @@
1
- /**
2
- * Hosted-key access — the CLIENT side of "optional sign-in unlocks hosted keys,
3
- * or bring your own." Keys NEVER ship in this client (Project Glasswing); they
4
- * live only in the ero.solar AWS backend, exactly like the Tavily search proxy
5
- * already does (see src/tools/webTools.ts). Sign-in mints a short-lived token;
6
- * the proxies validate it and use the operator keys.
7
- *
8
- * ── CONTRACT (the ero.solar backend implements this; this file codes against it) ──
9
- * Sign-in (loopback OAuth, increment 2):
10
- * open https://ero.solar/cli/login?port=<loopbackPort>&state=<csrf>
11
- * → Google SSO → 302 http://127.0.0.1:<port>/cb?token=<jwt>&email=<e>&state=<csrf>
12
- * DeepSeek (hosted): POST {HOSTED_DEEPSEEK_PROXY} header `Authorization: Bearer <token>`
13
- * Tavily (hosted): the existing tavilySearch proxy, same Bearer token
14
- * The token is short-lived and server-validated; if it 401s the CLI drops to
15
- * "signed out" and asks the user to /login again or use their own key.
16
- *
17
- * THIS MODULE is state + resolution only (increment 1, fully testable). The live
18
- * sign-in flow and the provider→proxy wiring are increment 2 (backend-gated).
19
- */
20
- export declare const HOSTED_LOGIN_URL = "https://ero.solar/cli/login";
21
- export declare const HOSTED_DEEPSEEK_PROXY = "https://ero.solar/api/deepseek";
22
- export interface HostedSession {
23
- token: string;
24
- email: string;
25
- }
26
- export type KeyMode = 'hosted' | 'own' | 'none';
27
- export interface KeyModeStatus {
28
- mode: KeyMode;
29
- email: string | null;
30
- signedIn: boolean;
31
- ownDeepSeek: boolean;
32
- ownTavily: boolean;
33
- preferOwnKeys: boolean;
34
- }
35
- /** The active hosted session (token + email), or null when signed out. */
36
- export declare function getHostedSession(): HostedSession | null;
37
- /** Persist a hosted session (called by /login once the backend returns a token). */
38
- export declare function setHostedSession(session: HostedSession): void;
39
- /** Sign out: drop the token but keep the own/hosted preference. */
40
- export declare function clearHostedSession(): void;
41
- export declare function prefersOwnKeys(): boolean;
42
- export declare function setPreferOwnKeys(value: boolean): void;
43
- /**
44
- * Resolve which keys are in effect. Preference order: an explicit "use my own
45
- * keys" wins when the user actually has a DeepSeek key; otherwise a hosted
46
- * session is used; otherwise the user's own key; otherwise nothing is set up.
47
- */
48
- export declare function resolveKeyMode(): KeyModeStatus;
49
- /**
50
- * The dim welcome/banner line that makes the active key source unmistakable —
51
- * the user must be able to see at a glance whether they're on hosted keys or
52
- * their own. Returns null in 'none' mode (the welcome already shows key setup).
53
- */
54
- export declare function keyModeLine(status?: KeyModeStatus): string | null;
55
- /**
56
- * Resolve the DeepSeek endpoint the provider should use. Hosted mode routes
57
- * through the ero.solar proxy authenticated by the short-lived sign-in token
58
- * (the real key lives only server-side, Glasswing); otherwise the user's own
59
- * key hits the API directly. `apiKey` is '' in 'none' mode (caller errors).
60
- */
61
- export declare function resolveDeepSeekEndpoint(): {
62
- apiKey: string;
63
- baseURL: string;
64
- mode: KeyMode;
65
- };
66
- export interface LoginResult {
67
- ok: boolean;
68
- session?: HostedSession;
69
- error?: string;
70
- }
71
- /**
72
- * Loopback-OAuth sign-in (the contract's increment 2). Starts a one-shot
73
- * 127.0.0.1 server on an ephemeral port, opens the browser to the ero.solar
74
- * Google-SSO login URL with that port + a CSRF state, and waits for the
75
- * redirect back to /cb?token=&email=&state=. On match it persists the hosted
76
- * session. The browser launch is injected (`open`) so the flow is testable
77
- * against the REAL loopback server without a real browser.
78
- *
79
- * Requires the ero.solar backend (SSO + token mint + redirect) to be live; with
80
- * no backend the browser opens to a not-yet-served endpoint and the wait times
81
- * out — the caller surfaces that honestly.
82
- */
83
- export declare function loginViaLoopback(opts: {
84
- open: (url: string) => void | Promise<void>;
85
- timeoutMs?: number;
86
- loginUrl?: string;
87
- }): Promise<LoginResult>;
88
- //# sourceMappingURL=hostedAuth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hostedAuth.d.ts","sourceRoot":"","sources":["../../src/core/hostedAuth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAUH,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAC9D,eAAO,MAAM,qBAAqB,mCAAmC,CAAC;AAWtE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AASD,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AA+BD,0EAA0E;AAC1E,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAGvD;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAG7D;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,IAAI,IAAI,CAMzC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAErD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,aAAa,CAa9C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,GAAE,aAAgC,GAAG,MAAM,GAAG,IAAI,CAanF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAW5F;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IACrC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuCvB"}