@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.
- package/dist/contracts/v1/agent.d.ts +2 -0
- package/dist/contracts/v1/agent.d.ts.map +1 -1
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +77 -2
- package/dist/core/agent.js.map +1 -1
- package/dist/core/bashCommandGuidance.d.ts.map +1 -1
- package/dist/core/bashCommandGuidance.js +19 -0
- package/dist/core/bashCommandGuidance.js.map +1 -1
- package/dist/core/contextManager.d.ts +10 -137
- package/dist/core/contextManager.d.ts.map +1 -1
- package/dist/core/contextManager.js +74 -540
- package/dist/core/contextManager.js.map +1 -1
- package/dist/core/errorClassification.d.ts.map +1 -1
- package/dist/core/errorClassification.js +8 -0
- package/dist/core/errorClassification.js.map +1 -1
- package/dist/core/hitl.d.ts +15 -0
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +20 -0
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/hooks.d.ts.map +1 -1
- package/dist/core/hooks.js +42 -19
- package/dist/core/hooks.js.map +1 -1
- package/dist/core/keyResolution.d.ts +30 -0
- package/dist/core/keyResolution.d.ts.map +1 -0
- package/dist/core/keyResolution.js +38 -0
- package/dist/core/keyResolution.js.map +1 -0
- package/dist/core/permissionMode.d.ts +17 -2
- package/dist/core/permissionMode.d.ts.map +1 -1
- package/dist/core/permissionMode.js +20 -7
- package/dist/core/permissionMode.js.map +1 -1
- package/dist/core/reasoningFallback.d.ts +22 -0
- package/dist/core/reasoningFallback.d.ts.map +1 -0
- package/dist/core/reasoningFallback.js +22 -0
- package/dist/core/reasoningFallback.js.map +1 -0
- package/dist/core/sessionStore.js +34 -8
- package/dist/core/sessionStore.js.map +1 -1
- package/dist/core/slashCommands.d.ts.map +1 -1
- package/dist/core/slashCommands.js +0 -3
- package/dist/core/slashCommands.js.map +1 -1
- package/dist/core/taskCompletionDetector.d.ts.map +1 -1
- package/dist/core/taskCompletionDetector.js +10 -3
- package/dist/core/taskCompletionDetector.js.map +1 -1
- package/dist/core/toolRuntime.d.ts +1 -0
- package/dist/core/toolRuntime.d.ts.map +1 -1
- package/dist/core/toolRuntime.js +25 -2
- package/dist/core/toolRuntime.js.map +1 -1
- package/dist/core/turnTokenMeter.d.ts +19 -0
- package/dist/core/turnTokenMeter.d.ts.map +1 -0
- package/dist/core/turnTokenMeter.js +36 -0
- package/dist/core/turnTokenMeter.js.map +1 -0
- package/dist/headless/interactiveShell.d.ts +3 -3
- package/dist/headless/interactiveShell.d.ts.map +1 -1
- package/dist/headless/interactiveShell.js +125 -116
- package/dist/headless/interactiveShell.js.map +1 -1
- package/dist/plugins/providers/deepseek/index.js +4 -6
- package/dist/plugins/providers/deepseek/index.js.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.js +33 -26
- package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
- package/dist/runtime/agentController.d.ts.map +1 -1
- package/dist/runtime/agentController.js +23 -7
- package/dist/runtime/agentController.js.map +1 -1
- package/dist/runtime/agentSession.d.ts.map +1 -1
- package/dist/runtime/agentSession.js +10 -3
- package/dist/runtime/agentSession.js.map +1 -1
- package/dist/tools/bashTools.d.ts +63 -0
- package/dist/tools/bashTools.d.ts.map +1 -1
- package/dist/tools/bashTools.js +186 -77
- package/dist/tools/bashTools.js.map +1 -1
- package/dist/tools/grepTools.d.ts.map +1 -1
- package/dist/tools/grepTools.js +41 -23
- package/dist/tools/grepTools.js.map +1 -1
- package/dist/tools/searchTools.d.ts.map +1 -1
- package/dist/tools/searchTools.js +18 -8
- package/dist/tools/searchTools.js.map +1 -1
- package/dist/tools/webTools.d.ts.map +1 -1
- package/dist/tools/webTools.js +10 -2
- package/dist/tools/webTools.js.map +1 -1
- package/dist/ui/ink/App.d.ts +6 -1
- package/dist/ui/ink/App.d.ts.map +1 -1
- package/dist/ui/ink/App.js +20 -2
- package/dist/ui/ink/App.js.map +1 -1
- package/dist/ui/ink/ChatStatic.d.ts.map +1 -1
- package/dist/ui/ink/ChatStatic.js +9 -2
- package/dist/ui/ink/ChatStatic.js.map +1 -1
- package/dist/ui/ink/InkPromptController.d.ts +17 -8
- package/dist/ui/ink/InkPromptController.d.ts.map +1 -1
- package/dist/ui/ink/InkPromptController.js +48 -21
- package/dist/ui/ink/InkPromptController.js.map +1 -1
- package/dist/ui/ink/StatusLine.d.ts +6 -7
- package/dist/ui/ink/StatusLine.d.ts.map +1 -1
- package/dist/ui/ink/StatusLine.js +9 -9
- package/dist/ui/ink/StatusLine.js.map +1 -1
- package/dist/ui/ink/markdownRender.d.ts +2 -0
- package/dist/ui/ink/markdownRender.d.ts.map +1 -0
- package/dist/ui/ink/markdownRender.js +76 -0
- package/dist/ui/ink/markdownRender.js.map +1 -0
- package/dist/ui/ink/narrationDedup.d.ts +28 -0
- package/dist/ui/ink/narrationDedup.d.ts.map +1 -0
- package/dist/ui/ink/narrationDedup.js +41 -0
- package/dist/ui/ink/narrationDedup.js.map +1 -0
- package/package.json +2 -1
- package/dist/core/hostedAuth.d.ts +0 -88
- package/dist/core/hostedAuth.d.ts.map +0 -1
- package/dist/core/hostedAuth.js +0 -219
- 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.
|
|
350
|
-
this.metaInfo.
|
|
353
|
+
if (typeof meta.outputTokens === 'number' && Number.isFinite(meta.outputTokens) && meta.outputTokens >= 0) {
|
|
354
|
+
this.metaInfo.outputTokens = meta.outputTokens;
|
|
351
355
|
}
|
|
352
|
-
|
|
353
|
-
|
|
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
|
|
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
|
-
|
|
490
|
-
if (incoming
|
|
491
|
-
|
|
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.
|
|
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.
|
|
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
|
|
627
|
-
* emoji-free: product, model, context
|
|
628
|
-
*
|
|
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":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzG,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAuDhE,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;IACpB,QAAQ,GAAsJ,EAAE,CAAC;IACzK,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,IAAgG;QAC5G,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,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjH,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,oEAAoE;QACpE,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,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,IAAI,QAAQ;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7G,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtI,IAAI,SAAS,CAAC,MAAM;YAAE,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;QACrE,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,EAAE,CAAC;YACT,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,CAAC;QACvG,CAAC;QACD,kEAAkE;QAClE,8CAA8C;IAChD,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,WAAW,EAAE,SAAS;gBACtB,QAAQ;gBACR,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI;gBAC5C,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,cAAc,EAAE,cAAc,EAAE;YAChC,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
|
+
{"version":3,"file":"InkPromptController.js","sourceRoot":"","sources":["../../../src/ui/ink/InkPromptController.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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)`.
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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
|
|
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
|
|
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)`.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
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,
|
|
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
|
-
|
|
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, {
|
|
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":";AAAA
|
|
1
|
+
{"version":3,"file":"StatusLine.js","sourceRoot":"","sources":["../../../src/ui/ink/StatusLine.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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.
|
|
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"}
|