mixdog 0.9.43 → 0.9.45
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/package.json +3 -2
- package/scripts/ansi-color-capability-test.mjs +90 -0
- package/scripts/generate-runtime-manifest.mjs +39 -22
- package/scripts/grok-oauth-refresh-race-test.mjs +198 -0
- package/scripts/internal-comms-smoke.mjs +24 -7
- package/scripts/maintenance-default-routes-test.mjs +164 -0
- package/scripts/openai-oauth-ws-1006-retry-test.mjs +123 -0
- package/scripts/routing-corpus.mjs +1 -1
- package/scripts/shell-jobs-windows-hide-test.mjs +164 -0
- package/scripts/tui-transcript-jitter-harness-entry.jsx +302 -0
- package/scripts/tui-transcript-jitter-harness.mjs +58 -0
- package/src/agents/reviewer/AGENT.md +5 -7
- package/src/rules/lead/lead-brief.md +5 -4
- package/src/runtime/agent/orchestrator/agent-runtime/agent-dispatch.mjs +40 -3
- package/src/runtime/agent/orchestrator/config.mjs +29 -14
- package/src/runtime/agent/orchestrator/providers/grok-oauth.mjs +46 -21
- package/src/runtime/agent/orchestrator/providers/retry-classifier.mjs +5 -1
- package/src/runtime/agent/orchestrator/tools/builtin/shell-jobs.mjs +7 -5
- package/src/runtime/memory/data/runtime-manifest.json +11 -11
- package/src/runtime/memory/lib/runtime-fetcher.mjs +1 -2
- package/src/runtime/shared/update-checker.mjs +40 -10
- package/src/standalone/agent-tool.mjs +65 -50
- package/src/standalone/explore-tool.mjs +17 -16
- package/src/tui/App.jsx +3 -6
- package/src/tui/app/provider-setup-picker.mjs +1 -0
- package/src/tui/app/use-transcript-window.mjs +5 -1
- package/src/tui/components/StatusLine.jsx +7 -6
- package/src/tui/dist/index.mjs +225 -90
- package/src/tui/engine/turn.mjs +1 -1
- package/src/tui/index.jsx +3 -2
- package/src/tui/markdown/streaming-markdown.mjs +35 -9
- package/src/tui/statusline-ansi-bridge.mjs +17 -7
- package/src/ui/ansi.mjs +85 -5
- package/src/ui/statusline-format.mjs +7 -7
package/src/tui/App.jsx
CHANGED
|
@@ -263,12 +263,9 @@ export function App({ store, initialStatusLine = '', forceOnboarding = false })
|
|
|
263
263
|
const [resizeState, setResizeState] = useState(() => ({ ...terminalSize(stdout), epoch: 0 }));
|
|
264
264
|
const [panelTransitionEpoch, setPanelTransitionEpoch] = useState(0);
|
|
265
265
|
const [panelInkMaskEpoch, setPanelInkMaskEpoch] = useState(0);
|
|
266
|
-
//
|
|
267
|
-
//
|
|
268
|
-
|
|
269
|
-
// necessarily win32 but the terminal behavior is still Windows-like.
|
|
270
|
-
const windowsLikeTerminal = process.platform === 'win32' || Boolean(process.env.WT_SESSION);
|
|
271
|
-
const rightSafetyColumns = windowsLikeTerminal ? 1 : 0;
|
|
266
|
+
// Keep a universal one-cell margin at the right edge: terminals may clip or
|
|
267
|
+
// wrap their final cell, including macOS terminals rendering rounded borders.
|
|
268
|
+
const rightSafetyColumns = 1;
|
|
272
269
|
const frameColumns = Math.max(1, resizeState.columns - rightSafetyColumns);
|
|
273
270
|
// scrollOffset = how many transcript ROWS we've scrolled UP from the bottom
|
|
274
271
|
// (0 = pinned to the latest, showing the newest content). Mouse wheel adjusts
|
|
@@ -49,6 +49,7 @@ export function createProviderSetupPicker({
|
|
|
49
49
|
let setup = options.preloadedSetup && typeof options.preloadedSetup === 'object'
|
|
50
50
|
? options.preloadedSetup
|
|
51
51
|
: null;
|
|
52
|
+
options.preloadedSetup = null;
|
|
52
53
|
if (!setup) {
|
|
53
54
|
setPicker({
|
|
54
55
|
title: options.title || 'Providers',
|
|
@@ -352,7 +352,11 @@ export function useTranscriptWindow({
|
|
|
352
352
|
// measuredRowsVersion bumps, the row index absorbs the growth (idEntry.rows ==
|
|
353
353
|
// the new measured height) and the live estimate matches it, so delta → 0.
|
|
354
354
|
if (scrolledUp && !followingRef.current) {
|
|
355
|
-
const growth = streamingTailMountedGrowth(
|
|
355
|
+
const growth = streamingTailMountedGrowth(
|
|
356
|
+
streamingTailItem ? [streamingTailItem] : transcriptItems,
|
|
357
|
+
frameColumns,
|
|
358
|
+
toolOutputExpanded,
|
|
359
|
+
);
|
|
356
360
|
// Only compensate when the tail is actually mounted in the rendered slice
|
|
357
361
|
// (viewport + overscan). Off-slice it is represented by a row-index-sized
|
|
358
362
|
// bottom spacer that does NOT physically grow this frame, so shifting the
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import React, { useEffect, useRef, useState } from 'react';
|
|
10
10
|
import { Box, Text } from 'ink';
|
|
11
|
+
import { rgbSgr } from '../../ui/ansi.mjs';
|
|
11
12
|
import { displayModelName, shortenModelName } from '../../ui/model-display.mjs';
|
|
12
13
|
import { theme, surfaceBackground } from '../theme.mjs';
|
|
13
14
|
import {
|
|
@@ -116,7 +117,7 @@ function scheduleBootFullRetry(backoffMsRef, nextAttemptAtRef) {
|
|
|
116
117
|
function ansiRgb(value, fallback) {
|
|
117
118
|
const match = /^rgb\((\d+),(\d+),(\d+)\)$/.exec(String(value || '').replace(/\s+/g, ''));
|
|
118
119
|
if (!match) return fallback;
|
|
119
|
-
return
|
|
120
|
+
return rgbSgr(match[1], match[2], match[3]);
|
|
120
121
|
}
|
|
121
122
|
|
|
122
123
|
// SGR escapes derived from the active theme. Resolved per call (not captured at
|
|
@@ -124,11 +125,11 @@ function ansiRgb(value, fallback) {
|
|
|
124
125
|
// render. `theme` is mutated in-place on switch.
|
|
125
126
|
function statusColors() {
|
|
126
127
|
return {
|
|
127
|
-
STATUS: ansiRgb(theme.statusText,
|
|
128
|
-
SUBTLE: ansiRgb(theme.statusSubtle,
|
|
129
|
-
SUCCESS: ansiRgb(theme.success,
|
|
130
|
-
WARNING: ansiRgb(theme.warning,
|
|
131
|
-
ERROR: ansiRgb(theme.error,
|
|
128
|
+
STATUS: ansiRgb(theme.statusText, rgbSgr(198, 198, 198)),
|
|
129
|
+
SUBTLE: ansiRgb(theme.statusSubtle, rgbSgr(136, 136, 136)),
|
|
130
|
+
SUCCESS: ansiRgb(theme.success, rgbSgr(0, 170, 75)),
|
|
131
|
+
WARNING: ansiRgb(theme.warning, rgbSgr(255, 193, 7)),
|
|
132
|
+
ERROR: ansiRgb(theme.error, rgbSgr(220, 70, 88)),
|
|
132
133
|
};
|
|
133
134
|
}
|
|
134
135
|
|