4runr-os 2.1.2 → 2.1.5
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/index.js +16 -1
- package/dist/index.js.map +1 -1
- package/dist/tui_mk1/kernel.d.ts.map +1 -1
- package/dist/tui_mk1/kernel.js +107 -4
- package/dist/tui_mk1/kernel.js.map +1 -1
- package/dist/tui_mk1/layout/layoutEngine.d.ts +38 -19
- package/dist/tui_mk1/layout/layoutEngine.d.ts.map +1 -1
- package/dist/tui_mk1/layout/layoutEngine.js +521 -228
- package/dist/tui_mk1/layout/layoutEngine.js.map +1 -1
- package/dist/tui_mk1/log.d.ts +23 -0
- package/dist/tui_mk1/log.d.ts.map +1 -0
- package/dist/tui_mk1/log.js +125 -0
- package/dist/tui_mk1/log.js.map +1 -0
- package/dist/tui_mk1/logger.d.ts.map +1 -1
- package/dist/tui_mk1/logger.js +20 -10
- package/dist/tui_mk1/logger.js.map +1 -1
- package/dist/tui_mk1/mk1App.d.ts +13 -18
- package/dist/tui_mk1/mk1App.d.ts.map +1 -1
- package/dist/tui_mk1/mk1App.js +334 -157
- package/dist/tui_mk1/mk1App.js.map +1 -1
- package/dist/tui_mk1/resizeController.d.ts.map +1 -1
- package/dist/tui_mk1/resizeController.js +15 -1
- package/dist/tui_mk1/resizeController.js.map +1 -1
- package/dist/tui_mk1/stdoutGuard.d.ts.map +1 -1
- package/dist/tui_mk1/stdoutGuard.js +7 -0
- package/dist/tui_mk1/stdoutGuard.js.map +1 -1
- package/dist/tui_mk1/terminalRestore.d.ts.map +1 -1
- package/dist/tui_mk1/terminalRestore.js +19 -1
- package/dist/tui_mk1/terminalRestore.js.map +1 -1
- package/dist/tui_mk1/ui/offenderScanner.d.ts +31 -0
- package/dist/tui_mk1/ui/offenderScanner.d.ts.map +1 -0
- package/dist/tui_mk1/ui/offenderScanner.js +80 -0
- package/dist/tui_mk1/ui/offenderScanner.js.map +1 -0
- package/dist/tui_mk1/ui/safe.d.ts +9 -0
- package/dist/tui_mk1/ui/safe.d.ts.map +1 -0
- package/dist/tui_mk1/ui/safe.js +29 -0
- package/dist/tui_mk1/ui/safe.js.map +1 -0
- package/dist/tui_mk1/ui/safeText.d.ts +22 -0
- package/dist/tui_mk1/ui/safeText.d.ts.map +1 -0
- package/dist/tui_mk1/ui/safeText.js +50 -0
- package/dist/tui_mk1/ui/safeText.js.map +1 -0
- package/dist/tui_mk1/ui/uiBuilder.d.ts +44 -0
- package/dist/tui_mk1/ui/uiBuilder.d.ts.map +1 -0
- package/dist/tui_mk1/ui/uiBuilder.js +467 -0
- package/dist/tui_mk1/ui/uiBuilder.js.map +1 -0
- package/dist/tui_mk1/viewport/safeViewport.d.ts +10 -1
- package/dist/tui_mk1/viewport/safeViewport.d.ts.map +1 -1
- package/dist/tui_mk1/viewport/safeViewport.js +47 -15
- package/dist/tui_mk1/viewport/safeViewport.js.map +1 -1
- package/dist/tui_mk2/kernel.d.ts +28 -0
- package/dist/tui_mk2/kernel.d.ts.map +1 -0
- package/dist/tui_mk2/kernel.js +86 -0
- package/dist/tui_mk2/kernel.js.map +1 -0
- package/dist/tui_mk2/mk2App.d.ts +33 -0
- package/dist/tui_mk2/mk2App.d.ts.map +1 -0
- package/dist/tui_mk2/mk2App.js +93 -0
- package/dist/tui_mk2/mk2App.js.map +1 -0
- package/package.json +8 -7
- package/dist/tui_mk1/ui/panels/createSection.d.ts +0 -18
- package/dist/tui_mk1/ui/panels/createSection.d.ts.map +0 -1
- package/dist/tui_mk1/ui/panels/createSection.js +0 -42
- package/dist/tui_mk1/ui/panels/createSection.js.map +0 -1
- package/dist/tui_mk1/ui/panels.d.ts +0 -23
- package/dist/tui_mk1/ui/panels.d.ts.map +0 -1
- package/dist/tui_mk1/ui/panels.js +0 -108
- package/dist/tui_mk1/ui/panels.js.map +0 -1
- package/dist/tui_mk1/ui/render/sectionRenderer.d.ts +0 -21
- package/dist/tui_mk1/ui/render/sectionRenderer.d.ts.map +0 -1
- package/dist/tui_mk1/ui/render/sectionRenderer.js +0 -32
- package/dist/tui_mk1/ui/render/sectionRenderer.js.map +0 -1
- package/dist/tui_mk1/ui/widgetManager.d.ts +0 -58
- package/dist/tui_mk1/ui/widgetManager.d.ts.map +0 -1
- package/dist/tui_mk1/ui/widgetManager.js +0 -197
- package/dist/tui_mk1/ui/widgetManager.js.map +0 -1
- package/dist/ui/boot/sequence.d.ts +0 -10
- package/dist/ui/boot/sequence.d.ts.map +0 -1
- package/dist/ui/boot/sequence.js +0 -171
- package/dist/ui/boot/sequence.js.map +0 -1
- package/dist/ui/constraints/layoutSpec.d.ts +0 -47
- package/dist/ui/constraints/layoutSpec.d.ts.map +0 -1
- package/dist/ui/constraints/layoutSpec.js +0 -60
- package/dist/ui/constraints/layoutSpec.js.map +0 -1
- package/dist/ui/constraints/unknownHandling.d.ts +0 -29
- package/dist/ui/constraints/unknownHandling.d.ts.map +0 -1
- package/dist/ui/constraints/unknownHandling.js +0 -60
- package/dist/ui/constraints/unknownHandling.js.map +0 -1
- package/dist/ui/drilldowns/feed.d.ts +0 -11
- package/dist/ui/drilldowns/feed.d.ts.map +0 -1
- package/dist/ui/drilldowns/feed.js +0 -68
- package/dist/ui/drilldowns/feed.js.map +0 -1
- package/dist/ui/drilldowns/index.d.ts +0 -7
- package/dist/ui/drilldowns/index.d.ts.map +0 -1
- package/dist/ui/drilldowns/index.js +0 -8
- package/dist/ui/drilldowns/index.js.map +0 -1
- package/dist/ui/drilldowns/posture.d.ts +0 -11
- package/dist/ui/drilldowns/posture.d.ts.map +0 -1
- package/dist/ui/drilldowns/posture.js +0 -74
- package/dist/ui/drilldowns/posture.js.map +0 -1
- package/dist/ui/intelligence-posture-view.d.ts +0 -22
- package/dist/ui/intelligence-posture-view.d.ts.map +0 -1
- package/dist/ui/intelligence-posture-view.js +0 -169
- package/dist/ui/intelligence-posture-view.js.map +0 -1
- package/dist/ui/navigation/keymaps.d.ts +0 -26
- package/dist/ui/navigation/keymaps.d.ts.map +0 -1
- package/dist/ui/navigation/keymaps.js +0 -135
- package/dist/ui/navigation/keymaps.js.map +0 -1
- package/dist/ui/navigation/palette.d.ts +0 -10
- package/dist/ui/navigation/palette.d.ts.map +0 -1
- package/dist/ui/navigation/palette.js +0 -133
- package/dist/ui/navigation/palette.js.map +0 -1
- package/dist/ui/navigation/state.d.ts +0 -47
- package/dist/ui/navigation/state.d.ts.map +0 -1
- package/dist/ui/navigation/state.js +0 -84
- package/dist/ui/navigation/state.js.map +0 -1
- package/dist/ui/navigation/types.d.ts +0 -38
- package/dist/ui/navigation/types.d.ts.map +0 -1
- package/dist/ui/navigation/types.js +0 -36
- package/dist/ui/navigation/types.js.map +0 -1
- package/dist/ui/panels/active-assets.d.ts +0 -12
- package/dist/ui/panels/active-assets.d.ts.map +0 -1
- package/dist/ui/panels/active-assets.js +0 -83
- package/dist/ui/panels/active-assets.js.map +0 -1
- package/dist/ui/panels/capability-flags.d.ts +0 -12
- package/dist/ui/panels/capability-flags.d.ts.map +0 -1
- package/dist/ui/panels/capability-flags.js +0 -59
- package/dist/ui/panels/capability-flags.js.map +0 -1
- package/dist/ui/panels/command-surface.d.ts +0 -12
- package/dist/ui/panels/command-surface.d.ts.map +0 -1
- package/dist/ui/panels/command-surface.js +0 -55
- package/dist/ui/panels/command-surface.js.map +0 -1
- package/dist/ui/panels/network-origin.d.ts +0 -12
- package/dist/ui/panels/network-origin.d.ts.map +0 -1
- package/dist/ui/panels/network-origin.js +0 -79
- package/dist/ui/panels/network-origin.js.map +0 -1
- package/dist/ui/panels/operations-feed.d.ts +0 -12
- package/dist/ui/panels/operations-feed.d.ts.map +0 -1
- package/dist/ui/panels/operations-feed.js +0 -90
- package/dist/ui/panels/operations-feed.js.map +0 -1
- package/dist/ui/panels/posture.d.ts +0 -12
- package/dist/ui/panels/posture.d.ts.map +0 -1
- package/dist/ui/panels/posture.js +0 -84
- package/dist/ui/panels/posture.js.map +0 -1
- package/dist/ui/panels/resources.d.ts +0 -11
- package/dist/ui/panels/resources.d.ts.map +0 -1
- package/dist/ui/panels/resources.js +0 -88
- package/dist/ui/panels/resources.js.map +0 -1
- package/dist/ui/primitives/Panel.d.ts +0 -25
- package/dist/ui/primitives/Panel.d.ts.map +0 -1
- package/dist/ui/primitives/Panel.js +0 -59
- package/dist/ui/primitives/Panel.js.map +0 -1
- package/dist/ui/rendering/metricRenderer.d.ts +0 -24
- package/dist/ui/rendering/metricRenderer.d.ts.map +0 -1
- package/dist/ui/rendering/metricRenderer.js +0 -86
- package/dist/ui/rendering/metricRenderer.js.map +0 -1
- package/dist/ui/runtime/hub.d.ts +0 -12
- package/dist/ui/runtime/hub.d.ts.map +0 -1
- package/dist/ui/runtime/hub.js +0 -486
- package/dist/ui/runtime/hub.js.map +0 -1
- package/dist/ui/runtime/hubValidation.d.ts +0 -23
- package/dist/ui/runtime/hubValidation.d.ts.map +0 -1
- package/dist/ui/runtime/hubValidation.js +0 -90
- package/dist/ui/runtime/hubValidation.js.map +0 -1
- package/dist/ui/runtime/index.d.ts +0 -29
- package/dist/ui/runtime/index.d.ts.map +0 -1
- package/dist/ui/runtime/index.js +0 -297
- package/dist/ui/runtime/index.js.map +0 -1
- package/dist/ui/runtime/no-tui.d.ts +0 -12
- package/dist/ui/runtime/no-tui.d.ts.map +0 -1
- package/dist/ui/runtime/no-tui.js +0 -77
- package/dist/ui/runtime/no-tui.js.map +0 -1
- package/dist/ui/runtime/state-builder.d.ts +0 -13
- package/dist/ui/runtime/state-builder.d.ts.map +0 -1
- package/dist/ui/runtime/state-builder.js +0 -114
- package/dist/ui/runtime/state-builder.js.map +0 -1
- package/dist/ui/runtime/terminalSizeCheck.d.ts +0 -10
- package/dist/ui/runtime/terminalSizeCheck.d.ts.map +0 -1
- package/dist/ui/runtime/terminalSizeCheck.js +0 -51
- package/dist/ui/runtime/terminalSizeCheck.js.map +0 -1
- package/dist/ui/runtime/tuiLogGate.d.ts +0 -22
- package/dist/ui/runtime/tuiLogGate.d.ts.map +0 -1
- package/dist/ui/runtime/tuiLogGate.js +0 -68
- package/dist/ui/runtime/tuiLogGate.js.map +0 -1
- package/dist/ui/state/types.d.ts +0 -72
- package/dist/ui/state/types.d.ts.map +0 -1
- package/dist/ui/state/types.js +0 -6
- package/dist/ui/state/types.js.map +0 -1
- package/dist/ui/theme/borders.d.ts +0 -20
- package/dist/ui/theme/borders.d.ts.map +0 -1
- package/dist/ui/theme/borders.js +0 -55
- package/dist/ui/theme/borders.js.map +0 -1
- package/dist/ui/theme/tokens.d.ts +0 -28
- package/dist/ui/theme/tokens.d.ts.map +0 -1
- package/dist/ui/theme/tokens.js +0 -50
- package/dist/ui/theme/tokens.js.map +0 -1
- package/dist/ui/theme/typography.d.ts +0 -14
- package/dist/ui/theme/typography.d.ts.map +0 -1
- package/dist/ui/theme/typography.js +0 -30
- package/dist/ui/theme/typography.js.map +0 -1
- package/dist/ui/v3/collectors/assets.collector.d.ts +0 -20
- package/dist/ui/v3/collectors/assets.collector.d.ts.map +0 -1
- package/dist/ui/v3/collectors/assets.collector.js +0 -80
- package/dist/ui/v3/collectors/assets.collector.js.map +0 -1
- package/dist/ui/v3/collectors/capabilities.collector.d.ts +0 -18
- package/dist/ui/v3/collectors/capabilities.collector.d.ts.map +0 -1
- package/dist/ui/v3/collectors/capabilities.collector.js +0 -113
- package/dist/ui/v3/collectors/capabilities.collector.js.map +0 -1
- package/dist/ui/v3/collectors/network.collector.d.ts +0 -18
- package/dist/ui/v3/collectors/network.collector.d.ts.map +0 -1
- package/dist/ui/v3/collectors/network.collector.js +0 -37
- package/dist/ui/v3/collectors/network.collector.js.map +0 -1
- package/dist/ui/v3/collectors/posture.derive.d.ts +0 -24
- package/dist/ui/v3/collectors/posture.derive.d.ts.map +0 -1
- package/dist/ui/v3/collectors/posture.derive.js +0 -57
- package/dist/ui/v3/collectors/posture.derive.js.map +0 -1
- package/dist/ui/v3/collectors/resources.d.ts +0 -23
- package/dist/ui/v3/collectors/resources.d.ts.map +0 -1
- package/dist/ui/v3/collectors/resources.js +0 -136
- package/dist/ui/v3/collectors/resources.js.map +0 -1
- package/dist/ui/v3/commands/commandEngine.d.ts +0 -77
- package/dist/ui/v3/commands/commandEngine.d.ts.map +0 -1
- package/dist/ui/v3/commands/commandEngine.js +0 -3289
- package/dist/ui/v3/commands/commandEngine.js.map +0 -1
- package/dist/ui/v3/commands/commandResult.d.ts +0 -25
- package/dist/ui/v3/commands/commandResult.d.ts.map +0 -1
- package/dist/ui/v3/commands/commandResult.js +0 -19
- package/dist/ui/v3/commands/commandResult.js.map +0 -1
- package/dist/ui/v3/commands/diagnose.d.ts +0 -17
- package/dist/ui/v3/commands/diagnose.d.ts.map +0 -1
- package/dist/ui/v3/commands/diagnose.js +0 -62
- package/dist/ui/v3/commands/diagnose.js.map +0 -1
- package/dist/ui/v3/commands/errorClassifier.d.ts +0 -23
- package/dist/ui/v3/commands/errorClassifier.d.ts.map +0 -1
- package/dist/ui/v3/commands/errorClassifier.js +0 -63
- package/dist/ui/v3/commands/errorClassifier.js.map +0 -1
- package/dist/ui/v3/commands/parser.d.ts +0 -14
- package/dist/ui/v3/commands/parser.d.ts.map +0 -1
- package/dist/ui/v3/commands/parser.js +0 -29
- package/dist/ui/v3/commands/parser.js.map +0 -1
- package/dist/ui/v3/commands/router.d.ts +0 -13
- package/dist/ui/v3/commands/router.d.ts.map +0 -1
- package/dist/ui/v3/commands/router.js +0 -150
- package/dist/ui/v3/commands/router.js.map +0 -1
- package/dist/ui/v3/config/gateway.d.ts +0 -40
- package/dist/ui/v3/config/gateway.d.ts.map +0 -1
- package/dist/ui/v3/config/gateway.js +0 -113
- package/dist/ui/v3/config/gateway.js.map +0 -1
- package/dist/ui/v3/core/event.d.ts +0 -19
- package/dist/ui/v3/core/event.d.ts.map +0 -1
- package/dist/ui/v3/core/event.js +0 -7
- package/dist/ui/v3/core/event.js.map +0 -1
- package/dist/ui/v3/core/eventBus.d.ts +0 -39
- package/dist/ui/v3/core/eventBus.d.ts.map +0 -1
- package/dist/ui/v3/core/eventBus.js +0 -79
- package/dist/ui/v3/core/eventBus.js.map +0 -1
- package/dist/ui/v3/core/feedStore.d.ts +0 -34
- package/dist/ui/v3/core/feedStore.d.ts.map +0 -1
- package/dist/ui/v3/core/feedStore.js +0 -46
- package/dist/ui/v3/core/feedStore.js.map +0 -1
- package/dist/ui/v3/core/logger.d.ts +0 -40
- package/dist/ui/v3/core/logger.d.ts.map +0 -1
- package/dist/ui/v3/core/logger.js +0 -191
- package/dist/ui/v3/core/logger.js.map +0 -1
- package/dist/ui/v3/core/opEvent.d.ts +0 -15
- package/dist/ui/v3/core/opEvent.d.ts.map +0 -1
- package/dist/ui/v3/core/opEvent.js +0 -7
- package/dist/ui/v3/core/opEvent.js.map +0 -1
- package/dist/ui/v3/index.d.ts +0 -8
- package/dist/ui/v3/index.d.ts.map +0 -1
- package/dist/ui/v3/index.js +0 -51
- package/dist/ui/v3/index.js.map +0 -1
- package/dist/ui/v3/runtime/moduleConfig.d.ts +0 -21
- package/dist/ui/v3/runtime/moduleConfig.d.ts.map +0 -1
- package/dist/ui/v3/runtime/moduleConfig.js +0 -41
- package/dist/ui/v3/runtime/moduleConfig.js.map +0 -1
- package/dist/ui/v3/section0/index.d.ts +0 -22
- package/dist/ui/v3/section0/index.d.ts.map +0 -1
- package/dist/ui/v3/section0/index.js +0 -88
- package/dist/ui/v3/section0/index.js.map +0 -1
- package/dist/ui/v3/section0/runtime/createScreen.d.ts +0 -27
- package/dist/ui/v3/section0/runtime/createScreen.d.ts.map +0 -1
- package/dist/ui/v3/section0/runtime/createScreen.js +0 -55
- package/dist/ui/v3/section0/runtime/createScreen.js.map +0 -1
- package/dist/ui/v3/section0/runtime/lifecycle.d.ts +0 -53
- package/dist/ui/v3/section0/runtime/lifecycle.d.ts.map +0 -1
- package/dist/ui/v3/section0/runtime/lifecycle.js +0 -172
- package/dist/ui/v3/section0/runtime/lifecycle.js.map +0 -1
- package/dist/ui/v3/section1/index.d.ts +0 -19
- package/dist/ui/v3/section1/index.d.ts.map +0 -1
- package/dist/ui/v3/section1/index.js +0 -413
- package/dist/ui/v3/section1/index.js.map +0 -1
- package/dist/ui/v3/section1/runtime/commandLine.d.ts +0 -49
- package/dist/ui/v3/section1/runtime/commandLine.d.ts.map +0 -1
- package/dist/ui/v3/section1/runtime/commandLine.js +0 -183
- package/dist/ui/v3/section1/runtime/commandLine.js.map +0 -1
- package/dist/ui/v3/section1/runtime/focusLock.d.ts +0 -24
- package/dist/ui/v3/section1/runtime/focusLock.d.ts.map +0 -1
- package/dist/ui/v3/section1/runtime/focusLock.js +0 -44
- package/dist/ui/v3/section1/runtime/focusLock.js.map +0 -1
- package/dist/ui/v3/state/assertUiState.d.ts +0 -27
- package/dist/ui/v3/state/assertUiState.d.ts.map +0 -1
- package/dist/ui/v3/state/assertUiState.js +0 -89
- package/dist/ui/v3/state/assertUiState.js.map +0 -1
- package/dist/ui/v3/state/capabilitiesStore.d.ts +0 -54
- package/dist/ui/v3/state/capabilitiesStore.d.ts.map +0 -1
- package/dist/ui/v3/state/capabilitiesStore.js +0 -76
- package/dist/ui/v3/state/capabilitiesStore.js.map +0 -1
- package/dist/ui/v3/state/defaultState.d.ts +0 -19
- package/dist/ui/v3/state/defaultState.d.ts.map +0 -1
- package/dist/ui/v3/state/defaultState.js +0 -28
- package/dist/ui/v3/state/defaultState.js.map +0 -1
- package/dist/ui/v3/state/gatewayConnectionStore.d.ts +0 -72
- package/dist/ui/v3/state/gatewayConnectionStore.d.ts.map +0 -1
- package/dist/ui/v3/state/gatewayConnectionStore.js +0 -108
- package/dist/ui/v3/state/gatewayConnectionStore.js.map +0 -1
- package/dist/ui/v3/state/initializePostureState.d.ts +0 -23
- package/dist/ui/v3/state/initializePostureState.d.ts.map +0 -1
- package/dist/ui/v3/state/initializePostureState.js +0 -41
- package/dist/ui/v3/state/initializePostureState.js.map +0 -1
- package/dist/ui/v3/state/panelStore.d.ts +0 -80
- package/dist/ui/v3/state/panelStore.d.ts.map +0 -1
- package/dist/ui/v3/state/panelStore.js +0 -131
- package/dist/ui/v3/state/panelStore.js.map +0 -1
- package/dist/ui/v3/state/resourcesData.d.ts +0 -15
- package/dist/ui/v3/state/resourcesData.d.ts.map +0 -1
- package/dist/ui/v3/state/resourcesData.js +0 -7
- package/dist/ui/v3/state/resourcesData.js.map +0 -1
- package/dist/ui/v3/state/uiState.d.ts +0 -22
- package/dist/ui/v3/state/uiState.d.ts.map +0 -1
- package/dist/ui/v3/state/uiState.js +0 -13
- package/dist/ui/v3/state/uiState.js.map +0 -1
- package/dist/ui/v3/state/uiStateBuilder.d.ts +0 -32
- package/dist/ui/v3/state/uiStateBuilder.d.ts.map +0 -1
- package/dist/ui/v3/state/uiStateBuilder.js +0 -73
- package/dist/ui/v3/state/uiStateBuilder.js.map +0 -1
- package/dist/ui/v3/state/uiStateTypes.d.ts +0 -59
- package/dist/ui/v3/state/uiStateTypes.d.ts.map +0 -1
- package/dist/ui/v3/state/uiStateTypes.js +0 -8
- package/dist/ui/v3/state/uiStateTypes.js.map +0 -1
- package/dist/ui/v3/state/value.d.ts +0 -80
- package/dist/ui/v3/state/value.d.ts.map +0 -1
- package/dist/ui/v3/state/value.js +0 -96
- package/dist/ui/v3/state/value.js.map +0 -1
- package/dist/ui/v3/tui/geometry.d.ts +0 -83
- package/dist/ui/v3/tui/geometry.d.ts.map +0 -1
- package/dist/ui/v3/tui/geometry.js +0 -201
- package/dist/ui/v3/tui/geometry.js.map +0 -1
- package/dist/ui/v3/tui/startTui.d.ts +0 -37
- package/dist/ui/v3/tui/startTui.d.ts.map +0 -1
- package/dist/ui/v3/tui/startTui.js +0 -61
- package/dist/ui/v3/tui/startTui.js.map +0 -1
- package/dist/ui/v3/tui/terminalMode.d.ts +0 -31
- package/dist/ui/v3/tui/terminalMode.d.ts.map +0 -1
- package/dist/ui/v3/tui/terminalMode.js +0 -76
- package/dist/ui/v3/tui/terminalMode.js.map +0 -1
- package/dist/ui/v3/ui/debugUtils.d.ts +0 -67
- package/dist/ui/v3/ui/debugUtils.d.ts.map +0 -1
- package/dist/ui/v3/ui/debugUtils.js +0 -238
- package/dist/ui/v3/ui/debugUtils.js.map +0 -1
- package/dist/ui/v3/ui/focus.d.ts +0 -28
- package/dist/ui/v3/ui/focus.d.ts.map +0 -1
- package/dist/ui/v3/ui/focus.js +0 -38
- package/dist/ui/v3/ui/focus.js.map +0 -1
- package/dist/ui/v3/ui/layout/hubLayout.d.ts +0 -43
- package/dist/ui/v3/ui/layout/hubLayout.d.ts.map +0 -1
- package/dist/ui/v3/ui/layout/hubLayout.js +0 -170
- package/dist/ui/v3/ui/layout/hubLayout.js.map +0 -1
- package/dist/ui/v3/ui/layout/phase1Layout.d.ts +0 -63
- package/dist/ui/v3/ui/layout/phase1Layout.d.ts.map +0 -1
- package/dist/ui/v3/ui/layout/phase1Layout.js +0 -274
- package/dist/ui/v3/ui/layout/phase1Layout.js.map +0 -1
- package/dist/ui/v3/ui/layout/phase1Layout.test.d.ts +0 -5
- package/dist/ui/v3/ui/layout/phase1Layout.test.d.ts.map +0 -1
- package/dist/ui/v3/ui/layout/phase1Layout.test.js +0 -120
- package/dist/ui/v3/ui/layout/phase1Layout.test.js.map +0 -1
- package/dist/ui/v3/ui/minimalRuntime.d.ts +0 -14
- package/dist/ui/v3/ui/minimalRuntime.d.ts.map +0 -1
- package/dist/ui/v3/ui/minimalRuntime.js +0 -111
- package/dist/ui/v3/ui/minimalRuntime.js.map +0 -1
- package/dist/ui/v3/ui/panels/AssetsPanel.d.ts +0 -17
- package/dist/ui/v3/ui/panels/AssetsPanel.d.ts.map +0 -1
- package/dist/ui/v3/ui/panels/AssetsPanel.js +0 -53
- package/dist/ui/v3/ui/panels/AssetsPanel.js.map +0 -1
- package/dist/ui/v3/ui/panels/CapabilitiesPanel.d.ts +0 -20
- package/dist/ui/v3/ui/panels/CapabilitiesPanel.d.ts.map +0 -1
- package/dist/ui/v3/ui/panels/CapabilitiesPanel.js +0 -67
- package/dist/ui/v3/ui/panels/CapabilitiesPanel.js.map +0 -1
- package/dist/ui/v3/ui/panels/NetworkPanel.d.ts +0 -31
- package/dist/ui/v3/ui/panels/NetworkPanel.d.ts.map +0 -1
- package/dist/ui/v3/ui/panels/NetworkPanel.js +0 -153
- package/dist/ui/v3/ui/panels/NetworkPanel.js.map +0 -1
- package/dist/ui/v3/ui/panels/PosturePanel.d.ts +0 -16
- package/dist/ui/v3/ui/panels/PosturePanel.d.ts.map +0 -1
- package/dist/ui/v3/ui/panels/PosturePanel.js +0 -60
- package/dist/ui/v3/ui/panels/PosturePanel.js.map +0 -1
- package/dist/ui/v3/ui/panels/ResourcesPanel.d.ts +0 -20
- package/dist/ui/v3/ui/panels/ResourcesPanel.d.ts.map +0 -1
- package/dist/ui/v3/ui/panels/ResourcesPanel.js +0 -66
- package/dist/ui/v3/ui/panels/ResourcesPanel.js.map +0 -1
- package/dist/ui/v3/ui/phase1Runtime.d.ts +0 -29
- package/dist/ui/v3/ui/phase1Runtime.d.ts.map +0 -1
- package/dist/ui/v3/ui/phase1Runtime.js +0 -1648
- package/dist/ui/v3/ui/phase1Runtime.js.map +0 -1
- package/dist/ui/v3/ui/phase1RuntimeClean.d.ts +0 -34
- package/dist/ui/v3/ui/phase1RuntimeClean.d.ts.map +0 -1
- package/dist/ui/v3/ui/phase1RuntimeClean.js +0 -1841
- package/dist/ui/v3/ui/phase1RuntimeClean.js.map +0 -1
- package/dist/ui/v3/ui/primitives/Panel.d.ts +0 -39
- package/dist/ui/v3/ui/primitives/Panel.d.ts.map +0 -1
- package/dist/ui/v3/ui/primitives/Panel.js +0 -105
- package/dist/ui/v3/ui/primitives/Panel.js.map +0 -1
- package/dist/ui/v3/ui/theme.d.ts +0 -37
- package/dist/ui/v3/ui/theme.d.ts.map +0 -1
- package/dist/ui/v3/ui/theme.js +0 -40
- package/dist/ui/v3/ui/theme.js.map +0 -1
- package/dist/ui/v3/ui/uiRuntime.d.ts +0 -40
- package/dist/ui/v3/ui/uiRuntime.d.ts.map +0 -1
- package/dist/ui/v3/ui/uiRuntime.js +0 -60
- package/dist/ui/v3/ui/uiRuntime.js.map +0 -1
- package/dist/ui/v3/ui/widgets/CommandLine.d.ts +0 -26
- package/dist/ui/v3/ui/widgets/CommandLine.d.ts.map +0 -1
- package/dist/ui/v3/ui/widgets/CommandLine.js +0 -67
- package/dist/ui/v3/ui/widgets/CommandLine.js.map +0 -1
- package/dist/ui/v3/v1Adapters/agents.d.ts +0 -72
- package/dist/ui/v3/v1Adapters/agents.d.ts.map +0 -1
- package/dist/ui/v3/v1Adapters/agents.js +0 -182
- package/dist/ui/v3/v1Adapters/agents.js.map +0 -1
- package/dist/ui/v3/v1Adapters/config.d.ts +0 -67
- package/dist/ui/v3/v1Adapters/config.d.ts.map +0 -1
- package/dist/ui/v3/v1Adapters/config.js +0 -78
- package/dist/ui/v3/v1Adapters/config.js.map +0 -1
- package/dist/ui/v3/v1Adapters/connect.d.ts +0 -77
- package/dist/ui/v3/v1Adapters/connect.d.ts.map +0 -1
- package/dist/ui/v3/v1Adapters/connect.js +0 -576
- package/dist/ui/v3/v1Adapters/connect.js.map +0 -1
- package/dist/ui/v3/v1Adapters/httpDebug.d.ts +0 -19
- package/dist/ui/v3/v1Adapters/httpDebug.d.ts.map +0 -1
- package/dist/ui/v3/v1Adapters/httpDebug.js +0 -60
- package/dist/ui/v3/v1Adapters/httpDebug.js.map +0 -1
- package/dist/ui/v3/v1Adapters/runs.d.ts +0 -77
- package/dist/ui/v3/v1Adapters/runs.d.ts.map +0 -1
- package/dist/ui/v3/v1Adapters/runs.js +0 -339
- package/dist/ui/v3/v1Adapters/runs.js.map +0 -1
- package/dist/ui/v4/engine/renderFrame.d.ts +0 -47
- package/dist/ui/v4/engine/renderFrame.d.ts.map +0 -1
- package/dist/ui/v4/engine/renderFrame.js +0 -653
- package/dist/ui/v4/engine/renderFrame.js.map +0 -1
- package/dist/ui/v4/engine/resizeController.d.ts +0 -48
- package/dist/ui/v4/engine/resizeController.d.ts.map +0 -1
- package/dist/ui/v4/engine/resizeController.js +0 -285
- package/dist/ui/v4/engine/resizeController.js.map +0 -1
- package/dist/ui/v4/engine/safeViewport.d.ts +0 -47
- package/dist/ui/v4/engine/safeViewport.d.ts.map +0 -1
- package/dist/ui/v4/engine/safeViewport.js +0 -123
- package/dist/ui/v4/engine/safeViewport.js.map +0 -1
- package/dist/ui/v4/engine/terminalProfile.d.ts +0 -56
- package/dist/ui/v4/engine/terminalProfile.d.ts.map +0 -1
- package/dist/ui/v4/engine/terminalProfile.js +0 -115
- package/dist/ui/v4/engine/terminalProfile.js.map +0 -1
- package/dist/ui/v4/index.d.ts +0 -28
- package/dist/ui/v4/index.d.ts.map +0 -1
- package/dist/ui/v4/index.js +0 -993
- package/dist/ui/v4/index.js.map +0 -1
- package/dist/ui/v4/layout/layoutEngine.d.ts +0 -62
- package/dist/ui/v4/layout/layoutEngine.d.ts.map +0 -1
- package/dist/ui/v4/layout/layoutEngine.js +0 -294
- package/dist/ui/v4/layout/layoutEngine.js.map +0 -1
- package/dist/ui/v4/runtime/keepAlive.d.ts +0 -21
- package/dist/ui/v4/runtime/keepAlive.d.ts.map +0 -1
- package/dist/ui/v4/runtime/keepAlive.js +0 -149
- package/dist/ui/v4/runtime/keepAlive.js.map +0 -1
- package/dist/ui/v4/runtime/logger.d.ts +0 -35
- package/dist/ui/v4/runtime/logger.d.ts.map +0 -1
- package/dist/ui/v4/runtime/logger.js +0 -109
- package/dist/ui/v4/runtime/logger.js.map +0 -1
- package/dist/ui/v5/debug/assertNoOverflow.d.ts +0 -28
- package/dist/ui/v5/debug/assertNoOverflow.d.ts.map +0 -1
- package/dist/ui/v5/debug/assertNoOverflow.js +0 -63
- package/dist/ui/v5/debug/assertNoOverflow.js.map +0 -1
- package/dist/ui/v5/debug/debugCommands.d.ts +0 -20
- package/dist/ui/v5/debug/debugCommands.d.ts.map +0 -1
- package/dist/ui/v5/debug/debugCommands.js +0 -461
- package/dist/ui/v5/debug/debugCommands.js.map +0 -1
- package/dist/ui/v5/debugCommands.d.ts +0 -20
- package/dist/ui/v5/debugCommands.d.ts.map +0 -1
- package/dist/ui/v5/debugCommands.js +0 -81
- package/dist/ui/v5/debugCommands.js.map +0 -1
- package/dist/ui/v5/guardrails/stdoutGuard.d.ts +0 -23
- package/dist/ui/v5/guardrails/stdoutGuard.d.ts.map +0 -1
- package/dist/ui/v5/guardrails/stdoutGuard.js +0 -94
- package/dist/ui/v5/guardrails/stdoutGuard.js.map +0 -1
- package/dist/ui/v5/guardrails/terminalRestore.d.ts +0 -17
- package/dist/ui/v5/guardrails/terminalRestore.d.ts.map +0 -1
- package/dist/ui/v5/guardrails/terminalRestore.js +0 -47
- package/dist/ui/v5/guardrails/terminalRestore.js.map +0 -1
- package/dist/ui/v5/index.d.ts +0 -30
- package/dist/ui/v5/index.d.ts.map +0 -1
- package/dist/ui/v5/index.js +0 -243
- package/dist/ui/v5/index.js.map +0 -1
- package/dist/ui/v5/kernel/kernel.d.ts +0 -81
- package/dist/ui/v5/kernel/kernel.d.ts.map +0 -1
- package/dist/ui/v5/kernel/kernel.js +0 -339
- package/dist/ui/v5/kernel/kernel.js.map +0 -1
- package/dist/ui/v5/kernel.d.ts +0 -75
- package/dist/ui/v5/kernel.d.ts.map +0 -1
- package/dist/ui/v5/kernel.js +0 -289
- package/dist/ui/v5/kernel.js.map +0 -1
- package/dist/ui/v5/layout/clampRect.d.ts +0 -28
- package/dist/ui/v5/layout/clampRect.d.ts.map +0 -1
- package/dist/ui/v5/layout/clampRect.js +0 -45
- package/dist/ui/v5/layout/clampRect.js.map +0 -1
- package/dist/ui/v5/layout/layoutEngine.d.ts +0 -16
- package/dist/ui/v5/layout/layoutEngine.d.ts.map +0 -1
- package/dist/ui/v5/layout/layoutEngine.js +0 -99
- package/dist/ui/v5/layout/layoutEngine.js.map +0 -1
- package/dist/ui/v5/renderGate.d.ts +0 -19
- package/dist/ui/v5/renderGate.d.ts.map +0 -1
- package/dist/ui/v5/renderGate.js +0 -36
- package/dist/ui/v5/renderGate.js.map +0 -1
- package/dist/ui/v5/resize/resizeController.d.ts +0 -62
- package/dist/ui/v5/resize/resizeController.d.ts.map +0 -1
- package/dist/ui/v5/resize/resizeController.js +0 -141
- package/dist/ui/v5/resize/resizeController.js.map +0 -1
- package/dist/ui/v5/resizeController.d.ts +0 -55
- package/dist/ui/v5/resizeController.d.ts.map +0 -1
- package/dist/ui/v5/resizeController.js +0 -124
- package/dist/ui/v5/resizeController.js.map +0 -1
- package/dist/ui/v5/runtime/keepAlive.d.ts +0 -37
- package/dist/ui/v5/runtime/keepAlive.d.ts.map +0 -1
- package/dist/ui/v5/runtime/keepAlive.js +0 -122
- package/dist/ui/v5/runtime/keepAlive.js.map +0 -1
- package/dist/ui/v5/runtime/restoreTerminal.d.ts +0 -34
- package/dist/ui/v5/runtime/restoreTerminal.d.ts.map +0 -1
- package/dist/ui/v5/runtime/restoreTerminal.js +0 -100
- package/dist/ui/v5/runtime/restoreTerminal.js.map +0 -1
- package/dist/ui/v5/runtime/stdoutGuard.d.ts +0 -42
- package/dist/ui/v5/runtime/stdoutGuard.d.ts.map +0 -1
- package/dist/ui/v5/runtime/stdoutGuard.js +0 -156
- package/dist/ui/v5/runtime/stdoutGuard.js.map +0 -1
- package/dist/ui/v5/viewport/getViewport.d.ts +0 -23
- package/dist/ui/v5/viewport/getViewport.d.ts.map +0 -1
- package/dist/ui/v5/viewport/getViewport.js +0 -117
- package/dist/ui/v5/viewport/getViewport.js.map +0 -1
- package/dist/ui/v5/viewport.d.ts +0 -41
- package/dist/ui/v5/viewport.d.ts.map +0 -1
- package/dist/ui/v5/viewport.js +0 -90
- package/dist/ui/v5/viewport.js.map +0 -1
- package/dist/ui/widgets/flagRow.d.ts +0 -25
- package/dist/ui/widgets/flagRow.d.ts.map +0 -1
- package/dist/ui/widgets/flagRow.js +0 -57
- package/dist/ui/widgets/flagRow.js.map +0 -1
- package/dist/ui/widgets/index.d.ts +0 -9
- package/dist/ui/widgets/index.d.ts.map +0 -1
- package/dist/ui/widgets/index.js +0 -9
- package/dist/ui/widgets/index.js.map +0 -1
- package/dist/ui/widgets/meter.d.ts +0 -18
- package/dist/ui/widgets/meter.d.ts.map +0 -1
- package/dist/ui/widgets/meter.js +0 -38
- package/dist/ui/widgets/meter.js.map +0 -1
- package/dist/ui/widgets/miniMap.d.ts +0 -26
- package/dist/ui/widgets/miniMap.d.ts.map +0 -1
- package/dist/ui/widgets/miniMap.js +0 -94
- package/dist/ui/widgets/miniMap.js.map +0 -1
- package/dist/ui/widgets/sparkline.d.ts +0 -17
- package/dist/ui/widgets/sparkline.d.ts.map +0 -1
- package/dist/ui/widgets/sparkline.js +0 -65
- package/dist/ui/widgets/sparkline.js.map +0 -1
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V5 Atomic Resize Controller
|
|
3
|
-
*
|
|
4
|
-
* Debounced resize handling with atomic rebuild strategy.
|
|
5
|
-
*
|
|
6
|
-
* Strategy: rebuild children on resize (remove/destroy all, recreate fresh)
|
|
7
|
-
* This avoids "ghost borders" and duplicated panels.
|
|
8
|
-
*/
|
|
9
|
-
import { getViewport } from '../viewport/getViewport.js';
|
|
10
|
-
export class ResizeController {
|
|
11
|
-
screen;
|
|
12
|
-
kernel;
|
|
13
|
-
timer = null;
|
|
14
|
-
layoutVersion = 0;
|
|
15
|
-
lastCommitted = { cols: 0, rows: 0 };
|
|
16
|
-
pending = { cols: 0, rows: 0 };
|
|
17
|
-
burstCount = 0;
|
|
18
|
-
lastResizeTs = 0;
|
|
19
|
-
lastSource = '';
|
|
20
|
-
constructor(screen, kernel) {
|
|
21
|
-
this.screen = screen;
|
|
22
|
-
this.kernel = kernel;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Start listening to resize events
|
|
26
|
-
*/
|
|
27
|
-
start() {
|
|
28
|
-
// Listen to screen resize
|
|
29
|
-
this.screen.on('resize', () => {
|
|
30
|
-
this.onResizeEvent('screen');
|
|
31
|
-
});
|
|
32
|
-
// Listen to process.stdout resize (Windows can be weird)
|
|
33
|
-
if (process.stdout.on) {
|
|
34
|
-
process.stdout.on('resize', () => {
|
|
35
|
-
this.onResizeEvent('stdout');
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Stop listening to resize events
|
|
41
|
-
*/
|
|
42
|
-
stop() {
|
|
43
|
-
if (this.timer) {
|
|
44
|
-
clearTimeout(this.timer);
|
|
45
|
-
this.timer = null;
|
|
46
|
-
}
|
|
47
|
-
// Remove listeners
|
|
48
|
-
if (typeof this.screen.removeAllListeners === 'function') {
|
|
49
|
-
this.screen.removeAllListeners('resize');
|
|
50
|
-
}
|
|
51
|
-
if (process.stdout && typeof process.stdout.removeAllListeners === 'function') {
|
|
52
|
-
process.stdout.removeAllListeners('resize');
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Get current layout version
|
|
57
|
-
*/
|
|
58
|
-
getLayoutVersion() {
|
|
59
|
-
return this.layoutVersion;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Get last committed size
|
|
63
|
-
*/
|
|
64
|
-
getLastCommitted() {
|
|
65
|
-
return { ...this.lastCommitted };
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Get burst count
|
|
69
|
-
*/
|
|
70
|
-
getBurstCount() {
|
|
71
|
-
return this.burstCount;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Get last resize timestamp
|
|
75
|
-
*/
|
|
76
|
-
getLastResizeTs() {
|
|
77
|
-
return this.lastResizeTs;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Get last resize source
|
|
81
|
-
*/
|
|
82
|
-
getLastSource() {
|
|
83
|
-
return this.lastSource;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Handle resize event (debounced)
|
|
87
|
-
*/
|
|
88
|
-
onResizeEvent(source) {
|
|
89
|
-
const vp = getViewport(this.screen);
|
|
90
|
-
this.pending = { cols: vp.rawCols, rows: vp.rawRows };
|
|
91
|
-
this.burstCount++;
|
|
92
|
-
this.lastResizeTs = Date.now();
|
|
93
|
-
if (this.timer) {
|
|
94
|
-
clearTimeout(this.timer);
|
|
95
|
-
}
|
|
96
|
-
// Debounce: 120-180ms (use 150ms)
|
|
97
|
-
this.timer = setTimeout(() => {
|
|
98
|
-
this.commitResize(source);
|
|
99
|
-
}, 150);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Commit resize (atomic)
|
|
103
|
-
*/
|
|
104
|
-
commitResize(source) {
|
|
105
|
-
this.timer = null;
|
|
106
|
-
const vp = getViewport(this.screen);
|
|
107
|
-
const cols = vp.rawCols;
|
|
108
|
-
const rows = vp.rawRows;
|
|
109
|
-
// Ignore bogus zero sizes
|
|
110
|
-
if (!cols || !rows) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
// Ignore duplicate commits
|
|
114
|
-
if (cols === this.lastCommitted.cols && rows === this.lastCommitted.rows) {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
// Calculate delta
|
|
118
|
-
const deltaC = Math.abs(cols - this.lastCommitted.cols);
|
|
119
|
-
const deltaR = Math.abs(rows - this.lastCommitted.rows);
|
|
120
|
-
// Determine if this is a "large" resize (fullscreen toggle, etc.)
|
|
121
|
-
const isLargeResize = deltaC > 20 || deltaR > 10;
|
|
122
|
-
const isHighBurst = this.burstCount > 3;
|
|
123
|
-
const needsHardReset = isLargeResize || isHighBurst;
|
|
124
|
-
this.lastCommitted = { cols, rows };
|
|
125
|
-
this.lastSource = source;
|
|
126
|
-
this.layoutVersion++;
|
|
127
|
-
const myVersion = this.layoutVersion;
|
|
128
|
-
const myBurstCount = this.burstCount;
|
|
129
|
-
// Reset burst count after commit
|
|
130
|
-
this.burstCount = 0;
|
|
131
|
-
this.kernel.rebuild({
|
|
132
|
-
cols,
|
|
133
|
-
rows,
|
|
134
|
-
version: myVersion,
|
|
135
|
-
source,
|
|
136
|
-
burstCount: myBurstCount,
|
|
137
|
-
hardReset: needsHardReset,
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
//# sourceMappingURL=resizeController.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resizeController.js","sourceRoot":"","sources":["../../../../src/ui/v5/resize/resizeController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V5 Atomic Resize Controller
|
|
3
|
-
*
|
|
4
|
-
* Listens to BOTH resize sources and debounces commits.
|
|
5
|
-
* Tracks layoutVersion for render gating.
|
|
6
|
-
*/
|
|
7
|
-
import type { Widgets } from 'neo-blessed';
|
|
8
|
-
import type { UIKernel } from './kernel.js';
|
|
9
|
-
export declare class ResizeController {
|
|
10
|
-
private screen;
|
|
11
|
-
private kernel;
|
|
12
|
-
private timer;
|
|
13
|
-
private layoutVersion;
|
|
14
|
-
private lastCommitted;
|
|
15
|
-
private pending;
|
|
16
|
-
private burstCount;
|
|
17
|
-
private lastSource;
|
|
18
|
-
constructor(screen: Widgets.Screen, kernel: UIKernel);
|
|
19
|
-
/**
|
|
20
|
-
* Start listening to resize events
|
|
21
|
-
*/
|
|
22
|
-
start(): void;
|
|
23
|
-
/**
|
|
24
|
-
* Stop listening to resize events
|
|
25
|
-
*/
|
|
26
|
-
stop(): void;
|
|
27
|
-
/**
|
|
28
|
-
* Get current layout version
|
|
29
|
-
*/
|
|
30
|
-
getLayoutVersion(): number;
|
|
31
|
-
/**
|
|
32
|
-
* Get last committed size
|
|
33
|
-
*/
|
|
34
|
-
getLastCommitted(): {
|
|
35
|
-
cols: number;
|
|
36
|
-
rows: number;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Get burst count
|
|
40
|
-
*/
|
|
41
|
-
getBurstCount(): number;
|
|
42
|
-
/**
|
|
43
|
-
* Get last resize source
|
|
44
|
-
*/
|
|
45
|
-
getLastSource(): string;
|
|
46
|
-
/**
|
|
47
|
-
* Handle resize event (debounced)
|
|
48
|
-
*/
|
|
49
|
-
private onResizeEvent;
|
|
50
|
-
/**
|
|
51
|
-
* Commit resize (atomic)
|
|
52
|
-
*/
|
|
53
|
-
private commitResize;
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=resizeController.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resizeController.d.ts","sourceRoot":"","sources":["../../../src/ui/v5/resizeController.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,aAAa,CAAC;AAG5D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,aAAa,CAAwD;IAC7E,OAAO,CAAC,OAAO,CAAwD;IACvE,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAc;gBAEpB,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ;IAKpD;;OAEG;IACH,KAAK,IAAI,IAAI;IAcb;;OAEG;IACH,IAAI,IAAI,IAAI;IAeZ;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,gBAAgB,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAIlD;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,YAAY;CAoCrB"}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V5 Atomic Resize Controller
|
|
3
|
-
*
|
|
4
|
-
* Listens to BOTH resize sources and debounces commits.
|
|
5
|
-
* Tracks layoutVersion for render gating.
|
|
6
|
-
*/
|
|
7
|
-
import { computeViewport } from './viewport.js';
|
|
8
|
-
export class ResizeController {
|
|
9
|
-
screen;
|
|
10
|
-
kernel;
|
|
11
|
-
timer = null;
|
|
12
|
-
layoutVersion = 0;
|
|
13
|
-
lastCommitted = { cols: 0, rows: 0 };
|
|
14
|
-
pending = { cols: 0, rows: 0 };
|
|
15
|
-
burstCount = 0;
|
|
16
|
-
lastSource = '';
|
|
17
|
-
constructor(screen, kernel) {
|
|
18
|
-
this.screen = screen;
|
|
19
|
-
this.kernel = kernel;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Start listening to resize events
|
|
23
|
-
*/
|
|
24
|
-
start() {
|
|
25
|
-
// Listen to screen resize
|
|
26
|
-
this.screen.on('resize', () => {
|
|
27
|
-
this.onResizeEvent('screen');
|
|
28
|
-
});
|
|
29
|
-
// Listen to process.stdout resize (Windows can be weird)
|
|
30
|
-
if (process.stdout.on) {
|
|
31
|
-
process.stdout.on('resize', () => {
|
|
32
|
-
this.onResizeEvent('stdout');
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Stop listening to resize events
|
|
38
|
-
*/
|
|
39
|
-
stop() {
|
|
40
|
-
if (this.timer) {
|
|
41
|
-
clearTimeout(this.timer);
|
|
42
|
-
this.timer = null;
|
|
43
|
-
}
|
|
44
|
-
// Remove listeners (blessed doesn't have removeAllListeners in types)
|
|
45
|
-
if (typeof this.screen.removeAllListeners === 'function') {
|
|
46
|
-
this.screen.removeAllListeners('resize');
|
|
47
|
-
}
|
|
48
|
-
if (process.stdout && typeof process.stdout.removeAllListeners === 'function') {
|
|
49
|
-
process.stdout.removeAllListeners('resize');
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Get current layout version
|
|
54
|
-
*/
|
|
55
|
-
getLayoutVersion() {
|
|
56
|
-
return this.layoutVersion;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Get last committed size
|
|
60
|
-
*/
|
|
61
|
-
getLastCommitted() {
|
|
62
|
-
return { ...this.lastCommitted };
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Get burst count
|
|
66
|
-
*/
|
|
67
|
-
getBurstCount() {
|
|
68
|
-
return this.burstCount;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Get last resize source
|
|
72
|
-
*/
|
|
73
|
-
getLastSource() {
|
|
74
|
-
return this.lastSource;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Handle resize event (debounced)
|
|
78
|
-
*/
|
|
79
|
-
onResizeEvent(source) {
|
|
80
|
-
// Use viewport to get raw dimensions (will be committed in commitResize)
|
|
81
|
-
const vp = computeViewport(this.screen);
|
|
82
|
-
this.pending = { cols: vp.rawCols, rows: vp.rawRows };
|
|
83
|
-
this.burstCount++;
|
|
84
|
-
if (this.timer) {
|
|
85
|
-
clearTimeout(this.timer);
|
|
86
|
-
}
|
|
87
|
-
this.timer = setTimeout(() => {
|
|
88
|
-
this.commitResize(source);
|
|
89
|
-
}, 120);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Commit resize (atomic)
|
|
93
|
-
*/
|
|
94
|
-
commitResize(source) {
|
|
95
|
-
this.timer = null;
|
|
96
|
-
// Use viewport to get raw dimensions (kernel will compute safe viewport)
|
|
97
|
-
const vp = computeViewport(this.screen);
|
|
98
|
-
const cols = vp.rawCols;
|
|
99
|
-
const rows = vp.rawRows;
|
|
100
|
-
// Ignore bogus zero sizes
|
|
101
|
-
if (!cols || !rows) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
// Ignore duplicate commits
|
|
105
|
-
if (cols === this.lastCommitted.cols && rows === this.lastCommitted.rows) {
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
this.lastCommitted = { cols, rows };
|
|
109
|
-
this.lastSource = source;
|
|
110
|
-
this.layoutVersion++;
|
|
111
|
-
const myVersion = this.layoutVersion;
|
|
112
|
-
const myBurstCount = this.burstCount;
|
|
113
|
-
// Reset burst count after commit
|
|
114
|
-
this.burstCount = 0;
|
|
115
|
-
this.kernel.rebuild({
|
|
116
|
-
cols,
|
|
117
|
-
rows,
|
|
118
|
-
version: myVersion,
|
|
119
|
-
source,
|
|
120
|
-
burstCount: myBurstCount,
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=resizeController.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resizeController.js","sourceRoot":"","sources":["../../../src/ui/v5/resizeController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V5 Keep-Alive Runtime
|
|
3
|
-
*
|
|
4
|
-
* Prevents Failure Mode C: Node exits cleanly after render (black screen)
|
|
5
|
-
*
|
|
6
|
-
* In AWS browser shells, stdin/raw mode may not hold the event loop open;
|
|
7
|
-
* process exits EXIT_CODE=0 leaving terminal in alt-screen/cleared state.
|
|
8
|
-
*
|
|
9
|
-
* This module:
|
|
10
|
-
* - Takes ownership of stdin
|
|
11
|
-
* - Sets raw mode (if TTY)
|
|
12
|
-
* - Binds Ctrl+C to clean exit
|
|
13
|
-
* - Adds event-loop anchor (setInterval)
|
|
14
|
-
* - Ensures process stays alive
|
|
15
|
-
*/
|
|
16
|
-
import type { Widgets } from 'neo-blessed';
|
|
17
|
-
/**
|
|
18
|
-
* Attach runtime keep-alive to screen
|
|
19
|
-
*
|
|
20
|
-
* This must be called BEFORE creating the blessed screen.
|
|
21
|
-
* It ensures:
|
|
22
|
-
* 1. Stdin is active and owns the event loop
|
|
23
|
-
* 2. Ctrl+C exits cleanly
|
|
24
|
-
* 3. Process doesn't exit prematurely
|
|
25
|
-
*/
|
|
26
|
-
export declare function attachRuntime(screen: Widgets.Screen): void;
|
|
27
|
-
/**
|
|
28
|
-
* Detach runtime keep-alive
|
|
29
|
-
*
|
|
30
|
-
* Call this on TUI shutdown to clean up.
|
|
31
|
-
*/
|
|
32
|
-
export declare function detachRuntime(screen: Widgets.Screen): void;
|
|
33
|
-
/**
|
|
34
|
-
* Check if keep-alive is active
|
|
35
|
-
*/
|
|
36
|
-
export declare function isKeepAliveActive(): boolean;
|
|
37
|
-
//# sourceMappingURL=keepAlive.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keepAlive.d.ts","sourceRoot":"","sources":["../../../../src/ui/v5/runtime/keepAlive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAS3C;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CA2D1D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CA0B1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V5 Keep-Alive Runtime
|
|
3
|
-
*
|
|
4
|
-
* Prevents Failure Mode C: Node exits cleanly after render (black screen)
|
|
5
|
-
*
|
|
6
|
-
* In AWS browser shells, stdin/raw mode may not hold the event loop open;
|
|
7
|
-
* process exits EXIT_CODE=0 leaving terminal in alt-screen/cleared state.
|
|
8
|
-
*
|
|
9
|
-
* This module:
|
|
10
|
-
* - Takes ownership of stdin
|
|
11
|
-
* - Sets raw mode (if TTY)
|
|
12
|
-
* - Binds Ctrl+C to clean exit
|
|
13
|
-
* - Adds event-loop anchor (setInterval)
|
|
14
|
-
* - Ensures process stays alive
|
|
15
|
-
*/
|
|
16
|
-
import { restoreTerminal } from './restoreTerminal.js';
|
|
17
|
-
import { safeStderrWrite } from './stdoutGuard.js';
|
|
18
|
-
let keepAliveInterval = null;
|
|
19
|
-
let stdinResumed = false;
|
|
20
|
-
let rawModeSet = false;
|
|
21
|
-
let originalRawMode;
|
|
22
|
-
/**
|
|
23
|
-
* Attach runtime keep-alive to screen
|
|
24
|
-
*
|
|
25
|
-
* This must be called BEFORE creating the blessed screen.
|
|
26
|
-
* It ensures:
|
|
27
|
-
* 1. Stdin is active and owns the event loop
|
|
28
|
-
* 2. Ctrl+C exits cleanly
|
|
29
|
-
* 3. Process doesn't exit prematurely
|
|
30
|
-
*/
|
|
31
|
-
export function attachRuntime(screen) {
|
|
32
|
-
// 1. Resume stdin (if paused)
|
|
33
|
-
if (process.stdin.isPaused()) {
|
|
34
|
-
process.stdin.resume();
|
|
35
|
-
stdinResumed = true;
|
|
36
|
-
}
|
|
37
|
-
// 2. Set raw mode if TTY (guarded)
|
|
38
|
-
if (process.stdin.isTTY) {
|
|
39
|
-
try {
|
|
40
|
-
originalRawMode = process.stdin.isRaw;
|
|
41
|
-
if (!process.stdin.isRaw) {
|
|
42
|
-
process.stdin.setRawMode(true);
|
|
43
|
-
rawModeSet = true;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
safeStderrWrite(`[V5] Warning: Failed to set raw mode: ${error}\n`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// 3. Bind Ctrl+C to clean exit
|
|
51
|
-
const handleSigInt = () => {
|
|
52
|
-
safeStderrWrite('\n[V5] Ctrl+C received - cleaning up...\n');
|
|
53
|
-
restoreTerminal(screen);
|
|
54
|
-
process.exit(0);
|
|
55
|
-
};
|
|
56
|
-
process.on('SIGINT', handleSigInt);
|
|
57
|
-
process.on('SIGTERM', () => {
|
|
58
|
-
safeStderrWrite('\n[V5] SIGTERM received - cleaning up...\n');
|
|
59
|
-
restoreTerminal(screen);
|
|
60
|
-
process.exit(0);
|
|
61
|
-
});
|
|
62
|
-
// 4. Add event-loop anchor
|
|
63
|
-
// DO NOT unref - we need this to keep the process alive
|
|
64
|
-
keepAliveInterval = setInterval(() => {
|
|
65
|
-
// Empty interval - just keeps event loop alive
|
|
66
|
-
// This is intentional - we want the process to stay alive
|
|
67
|
-
}, 60000); // Every 60 seconds
|
|
68
|
-
// 5. Handle uncaught exceptions
|
|
69
|
-
process.on('uncaughtException', (error) => {
|
|
70
|
-
safeStderrWrite(`\n[V5 FATAL ERROR] ${error.message}\n`);
|
|
71
|
-
if (error.stack) {
|
|
72
|
-
safeStderrWrite(`[V5 FATAL ERROR] Stack: ${error.stack}\n`);
|
|
73
|
-
}
|
|
74
|
-
restoreTerminal(screen);
|
|
75
|
-
process.exit(1);
|
|
76
|
-
});
|
|
77
|
-
// 6. Handle unhandled rejections
|
|
78
|
-
process.on('unhandledRejection', (reason) => {
|
|
79
|
-
safeStderrWrite(`\n[V5 UNHANDLED REJECTION] ${reason}\n`);
|
|
80
|
-
restoreTerminal(screen);
|
|
81
|
-
process.exit(1);
|
|
82
|
-
});
|
|
83
|
-
safeStderrWrite('[V5] Keep-alive runtime attached\n');
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Detach runtime keep-alive
|
|
87
|
-
*
|
|
88
|
-
* Call this on TUI shutdown to clean up.
|
|
89
|
-
*/
|
|
90
|
-
export function detachRuntime(screen) {
|
|
91
|
-
// Clear interval
|
|
92
|
-
if (keepAliveInterval) {
|
|
93
|
-
clearInterval(keepAliveInterval);
|
|
94
|
-
keepAliveInterval = null;
|
|
95
|
-
}
|
|
96
|
-
// Restore stdin raw mode
|
|
97
|
-
if (rawModeSet && process.stdin.isTTY) {
|
|
98
|
-
try {
|
|
99
|
-
if (originalRawMode !== undefined) {
|
|
100
|
-
process.stdin.setRawMode(originalRawMode);
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
process.stdin.setRawMode(false);
|
|
104
|
-
}
|
|
105
|
-
rawModeSet = false;
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
// Ignore errors during cleanup
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
// Remove signal handlers (they'll be cleaned up on exit anyway)
|
|
112
|
-
// But we restore terminal first
|
|
113
|
-
restoreTerminal(screen);
|
|
114
|
-
safeStderrWrite('[V5] Keep-alive runtime detached\n');
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Check if keep-alive is active
|
|
118
|
-
*/
|
|
119
|
-
export function isKeepAliveActive() {
|
|
120
|
-
return keepAliveInterval !== null;
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=keepAlive.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keepAlive.js","sourceRoot":"","sources":["../../../../src/ui/v5/runtime/keepAlive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V5 Terminal Restore
|
|
3
|
-
*
|
|
4
|
-
* Prevents terminal from being stuck in alt-screen/cleared state after exit.
|
|
5
|
-
*
|
|
6
|
-
* On exit paths (exit, Ctrl+C, exceptions):
|
|
7
|
-
* - screen.program.showCursor()
|
|
8
|
-
* - attempt to exit alt-screen if needed
|
|
9
|
-
* - screen.destroy()
|
|
10
|
-
*
|
|
11
|
-
* This ensures the terminal is always restored to a usable state.
|
|
12
|
-
*/
|
|
13
|
-
import type { Widgets } from 'neo-blessed';
|
|
14
|
-
/**
|
|
15
|
-
* Restore terminal to normal state
|
|
16
|
-
*
|
|
17
|
-
* This must be called on ALL exit paths:
|
|
18
|
-
* - Normal exit
|
|
19
|
-
* - Ctrl+C
|
|
20
|
-
* - Exceptions
|
|
21
|
-
* - Errors
|
|
22
|
-
*
|
|
23
|
-
* It's safe to call multiple times (idempotent).
|
|
24
|
-
*/
|
|
25
|
-
export declare function restoreTerminal(screen: Widgets.Screen | null): void;
|
|
26
|
-
/**
|
|
27
|
-
* Reset restore flag (for testing)
|
|
28
|
-
*/
|
|
29
|
-
export declare function resetRestoreFlag(): void;
|
|
30
|
-
/**
|
|
31
|
-
* Check if restore has been called
|
|
32
|
-
*/
|
|
33
|
-
export declare function isRestoreCalled(): boolean;
|
|
34
|
-
//# sourceMappingURL=restoreTerminal.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"restoreTerminal.d.ts","sourceRoot":"","sources":["../../../../src/ui/v5/runtime/restoreTerminal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAK3C;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CA8DnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* V5 Terminal Restore
|
|
3
|
-
*
|
|
4
|
-
* Prevents terminal from being stuck in alt-screen/cleared state after exit.
|
|
5
|
-
*
|
|
6
|
-
* On exit paths (exit, Ctrl+C, exceptions):
|
|
7
|
-
* - screen.program.showCursor()
|
|
8
|
-
* - attempt to exit alt-screen if needed
|
|
9
|
-
* - screen.destroy()
|
|
10
|
-
*
|
|
11
|
-
* This ensures the terminal is always restored to a usable state.
|
|
12
|
-
*/
|
|
13
|
-
import { safeStderrWrite } from './stdoutGuard.js';
|
|
14
|
-
let restoreCalled = false;
|
|
15
|
-
/**
|
|
16
|
-
* Restore terminal to normal state
|
|
17
|
-
*
|
|
18
|
-
* This must be called on ALL exit paths:
|
|
19
|
-
* - Normal exit
|
|
20
|
-
* - Ctrl+C
|
|
21
|
-
* - Exceptions
|
|
22
|
-
* - Errors
|
|
23
|
-
*
|
|
24
|
-
* It's safe to call multiple times (idempotent).
|
|
25
|
-
*/
|
|
26
|
-
export function restoreTerminal(screen) {
|
|
27
|
-
if (restoreCalled && screen === null) {
|
|
28
|
-
return; // Already restored and screen is gone
|
|
29
|
-
}
|
|
30
|
-
if (!screen) {
|
|
31
|
-
// Screen already destroyed, try to restore cursor anyway
|
|
32
|
-
try {
|
|
33
|
-
// Try to show cursor via ANSI escape code
|
|
34
|
-
process.stderr.write('\x1b[?25h'); // Show cursor
|
|
35
|
-
process.stderr.write('\x1b[?1049l'); // Exit alternate screen
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
// Ignore errors
|
|
39
|
-
}
|
|
40
|
-
restoreCalled = true;
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
try {
|
|
44
|
-
const program = screen.program;
|
|
45
|
-
// 1. Show cursor
|
|
46
|
-
if (program && typeof program.showCursor === 'function') {
|
|
47
|
-
program.showCursor();
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
// Fallback: ANSI escape code
|
|
51
|
-
process.stderr.write('\x1b[?25h');
|
|
52
|
-
}
|
|
53
|
-
// 2. Exit alternate screen (if in alt screen)
|
|
54
|
-
if (program && typeof program.alternateScreen === 'function') {
|
|
55
|
-
// blessed doesn't have a direct "exit alt screen" but we can try
|
|
56
|
-
try {
|
|
57
|
-
process.stderr.write('\x1b[?1049l'); // Exit alternate screen
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
// Ignore
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
// Fallback: ANSI escape code
|
|
65
|
-
process.stderr.write('\x1b[?1049l');
|
|
66
|
-
}
|
|
67
|
-
// 3. Destroy screen (this should clean up everything)
|
|
68
|
-
if (typeof screen.destroy === 'function') {
|
|
69
|
-
screen.destroy();
|
|
70
|
-
}
|
|
71
|
-
// 4. Ensure cursor is visible (double-check)
|
|
72
|
-
process.stderr.write('\x1b[?25h');
|
|
73
|
-
restoreCalled = true;
|
|
74
|
-
safeStderrWrite('[V5] Terminal restored\n');
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
// Even if restore fails, try to show cursor
|
|
78
|
-
try {
|
|
79
|
-
process.stderr.write('\x1b[?25h');
|
|
80
|
-
process.stderr.write('\x1b[?1049l');
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
// Last resort - ignore
|
|
84
|
-
}
|
|
85
|
-
safeStderrWrite(`[V5] Warning: Terminal restore had errors: ${error}\n`);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Reset restore flag (for testing)
|
|
90
|
-
*/
|
|
91
|
-
export function resetRestoreFlag() {
|
|
92
|
-
restoreCalled = false;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Check if restore has been called
|
|
96
|
-
*/
|
|
97
|
-
export function isRestoreCalled() {
|
|
98
|
-
return restoreCalled;
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=restoreTerminal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"restoreTerminal.js","sourceRoot":"","sources":["../../../../src/ui/v5/runtime/restoreTerminal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,MAA6B;IAC3D,IAAI,aAAa,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACrC,OAAO,CAAC,sCAAsC;IAChD,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,yDAAyD;QACzD,IAAI,CAAC;YACH,0CAA0C;YAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;YACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QACD,aAAa,GAAG,IAAI,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAI,MAAc,CAAC,OAAO,CAAC;QAExC,iBAAiB;QACjB,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACxD,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QAED,8CAA8C;QAC9C,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YAC7D,iEAAiE;YACjE,IAAI,CAAC;gBACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB;YAC/D,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC;QAED,sDAAsD;QACtD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACzC,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,6CAA6C;QAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAElC,aAAa,GAAG,IAAI,CAAC;QACrB,eAAe,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4CAA4C;QAC5C,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;QACD,eAAe,CAAC,8CAA8C,KAAK,IAAI,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,aAAa,GAAG,KAAK,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,aAAa,CAAC;AACvB,CAAC"}
|