@inhuman.tools/quickdraw 0.0.0-stage → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +7 -0
- package/README.md +101 -2
- package/aurora.vert +168 -0
- package/dist/bench/host.d.ts +62 -0
- package/dist/bench/host.d.ts.map +1 -0
- package/dist/bench/host.js +77 -0
- package/dist/bench/host.js.map +1 -0
- package/dist/bench/main.d.ts +6 -0
- package/dist/bench/main.d.ts.map +1 -0
- package/dist/bench/main.js +118 -0
- package/dist/bench/main.js.map +1 -0
- package/dist/bench/model.d.ts +36 -0
- package/dist/bench/model.d.ts.map +1 -0
- package/dist/bench/model.js +112 -0
- package/dist/bench/model.js.map +1 -0
- package/dist/bench/tea.d.ts +14 -0
- package/dist/bench/tea.d.ts.map +1 -0
- package/dist/bench/tea.js +6 -0
- package/dist/bench/tea.js.map +1 -0
- package/dist/bench/view.d.ts +9 -0
- package/dist/bench/view.d.ts.map +1 -0
- package/dist/bench/view.js +88 -0
- package/dist/bench/view.js.map +1 -0
- package/dist/bench/worker.d.ts +6 -0
- package/dist/bench/worker.d.ts.map +1 -0
- package/dist/bench/worker.js +46 -0
- package/dist/bench/worker.js.map +1 -0
- package/dist/buffer/bgfx-mark.d.ts +32 -0
- package/dist/buffer/bgfx-mark.d.ts.map +1 -0
- package/dist/buffer/bgfx-mark.js +43 -0
- package/dist/buffer/bgfx-mark.js.map +1 -0
- package/dist/buffer/index.d.ts +191 -0
- package/dist/buffer/index.d.ts.map +1 -0
- package/dist/buffer/index.js +353 -0
- package/dist/buffer/index.js.map +1 -0
- package/dist/capabilities/env.d.ts +23 -0
- package/dist/capabilities/env.d.ts.map +1 -0
- package/dist/capabilities/env.js +35 -0
- package/dist/capabilities/env.js.map +1 -0
- package/dist/capabilities/index.d.ts +13 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +13 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/parse.d.ts +41 -0
- package/dist/capabilities/parse.d.ts.map +1 -0
- package/dist/capabilities/parse.js +86 -0
- package/dist/capabilities/parse.js.map +1 -0
- package/dist/capabilities/probe.d.ts +37 -0
- package/dist/capabilities/probe.d.ts.map +1 -0
- package/dist/capabilities/probe.js +75 -0
- package/dist/capabilities/probe.js.map +1 -0
- package/dist/capabilities/sequences.d.ts +33 -0
- package/dist/capabilities/sequences.d.ts.map +1 -0
- package/dist/capabilities/sequences.js +36 -0
- package/dist/capabilities/sequences.js.map +1 -0
- package/dist/capabilities/types.d.ts +25 -0
- package/dist/capabilities/types.d.ts.map +1 -0
- package/dist/capabilities/types.js +5 -0
- package/dist/capabilities/types.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/input/decode.d.ts +167 -0
- package/dist/input/decode.d.ts.map +1 -0
- package/dist/input/decode.js +825 -0
- package/dist/input/decode.js.map +1 -0
- package/dist/input/draft.d.ts +85 -0
- package/dist/input/draft.d.ts.map +1 -0
- package/dist/input/draft.js +276 -0
- package/dist/input/draft.js.map +1 -0
- package/dist/input/index.d.ts +3 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/index.js +3 -0
- package/dist/input/index.js.map +1 -0
- package/dist/input/prompt-blocks.d.ts +58 -0
- package/dist/input/prompt-blocks.d.ts.map +1 -0
- package/dist/input/prompt-blocks.js +48 -0
- package/dist/input/prompt-blocks.js.map +1 -0
- package/dist/input/rich-draft.d.ts +46 -0
- package/dist/input/rich-draft.d.ts.map +1 -0
- package/dist/input/rich-draft.js +391 -0
- package/dist/input/rich-draft.js.map +1 -0
- package/dist/input/rich-hit.d.ts +17 -0
- package/dist/input/rich-hit.d.ts.map +1 -0
- package/dist/input/rich-hit.js +89 -0
- package/dist/input/rich-hit.js.map +1 -0
- package/dist/input/rich-intake.d.ts +16 -0
- package/dist/input/rich-intake.d.ts.map +1 -0
- package/dist/input/rich-intake.js +22 -0
- package/dist/input/rich-intake.js.map +1 -0
- package/dist/input/rich-paint.d.ts +13 -0
- package/dist/input/rich-paint.d.ts.map +1 -0
- package/dist/input/rich-paint.js +18 -0
- package/dist/input/rich-paint.js.map +1 -0
- package/dist/internals/bgfx/index.d.ts +17 -0
- package/dist/internals/bgfx/index.d.ts.map +1 -0
- package/dist/internals/bgfx/index.js +17 -0
- package/dist/internals/bgfx/index.js.map +1 -0
- package/dist/internals/bgfx/materialize.d.ts +31 -0
- package/dist/internals/bgfx/materialize.d.ts.map +1 -0
- package/dist/internals/bgfx/materialize.js +117 -0
- package/dist/internals/bgfx/materialize.js.map +1 -0
- package/dist/internals/bgfx/opacity.d.ts +37 -0
- package/dist/internals/bgfx/opacity.d.ts.map +1 -0
- package/dist/internals/bgfx/opacity.js +76 -0
- package/dist/internals/bgfx/opacity.js.map +1 -0
- package/dist/internals/bgfx/registry.d.ts +13 -0
- package/dist/internals/bgfx/registry.d.ts.map +1 -0
- package/dist/internals/bgfx/registry.js +24 -0
- package/dist/internals/bgfx/registry.js.map +1 -0
- package/dist/internals/bgfx/sab-layout.d.ts +61 -0
- package/dist/internals/bgfx/sab-layout.d.ts.map +1 -0
- package/dist/internals/bgfx/sab-layout.js +107 -0
- package/dist/internals/bgfx/sab-layout.js.map +1 -0
- package/dist/internals/bgfx/shader-frame-host.d.ts +22 -0
- package/dist/internals/bgfx/shader-frame-host.d.ts.map +1 -0
- package/dist/internals/bgfx/shader-frame-host.js +165 -0
- package/dist/internals/bgfx/shader-frame-host.js.map +1 -0
- package/dist/internals/bgfx/shadertoy-catalog.d.ts +41 -0
- package/dist/internals/bgfx/shadertoy-catalog.d.ts.map +1 -0
- package/dist/internals/bgfx/shadertoy-catalog.js +200 -0
- package/dist/internals/bgfx/shadertoy-catalog.js.map +1 -0
- package/dist/internals/bgfx/shadertoy-gl.d.ts +38 -0
- package/dist/internals/bgfx/shadertoy-gl.d.ts.map +1 -0
- package/dist/internals/bgfx/shadertoy-gl.js +283 -0
- package/dist/internals/bgfx/shadertoy-gl.js.map +1 -0
- package/dist/internals/bgfx/types.d.ts +51 -0
- package/dist/internals/bgfx/types.d.ts.map +1 -0
- package/dist/internals/bgfx/types.js +14 -0
- package/dist/internals/bgfx/types.js.map +1 -0
- package/dist/internals/bgfx-worker.d.ts +6 -0
- package/dist/internals/bgfx-worker.d.ts.map +1 -0
- package/dist/internals/bgfx-worker.js +131 -0
- package/dist/internals/bgfx-worker.js.map +1 -0
- package/dist/layout/birth.d.ts +77 -0
- package/dist/layout/birth.d.ts.map +1 -0
- package/dist/layout/birth.js +148 -0
- package/dist/layout/birth.js.map +1 -0
- package/dist/layout/children.d.ts +5 -0
- package/dist/layout/children.d.ts.map +1 -0
- package/dist/layout/children.js +19 -0
- package/dist/layout/children.js.map +1 -0
- package/dist/layout/chrome_frame.d.ts +254 -0
- package/dist/layout/chrome_frame.d.ts.map +1 -0
- package/dist/layout/chrome_frame.js +1080 -0
- package/dist/layout/chrome_frame.js.map +1 -0
- package/dist/layout/chrome_mask.d.ts +40 -0
- package/dist/layout/chrome_mask.d.ts.map +1 -0
- package/dist/layout/chrome_mask.js +150 -0
- package/dist/layout/chrome_mask.js.map +1 -0
- package/dist/layout/engine.d.ts +49 -0
- package/dist/layout/engine.d.ts.map +1 -0
- package/dist/layout/engine.js +1269 -0
- package/dist/layout/engine.js.map +1 -0
- package/dist/layout/flex.d.ts +36 -0
- package/dist/layout/flex.d.ts.map +1 -0
- package/dist/layout/flex.js +111 -0
- package/dist/layout/flex.js.map +1 -0
- package/dist/layout/grid.d.ts +36 -0
- package/dist/layout/grid.d.ts.map +1 -0
- package/dist/layout/grid.js +126 -0
- package/dist/layout/grid.js.map +1 -0
- package/dist/layout/index.d.ts +30 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +30 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/indication.d.ts +34 -0
- package/dist/layout/indication.d.ts.map +1 -0
- package/dist/layout/indication.js +68 -0
- package/dist/layout/indication.js.map +1 -0
- package/dist/layout/length.d.ts +18 -0
- package/dist/layout/length.d.ts.map +1 -0
- package/dist/layout/length.js +24 -0
- package/dist/layout/length.js.map +1 -0
- package/dist/layout/live_paint.d.ts +145 -0
- package/dist/layout/live_paint.d.ts.map +1 -0
- package/dist/layout/live_paint.js +255 -0
- package/dist/layout/live_paint.js.map +1 -0
- package/dist/layout/markdown.d.ts +22 -0
- package/dist/layout/markdown.d.ts.map +1 -0
- package/dist/layout/markdown.js +167 -0
- package/dist/layout/markdown.js.map +1 -0
- package/dist/layout/measure.d.ts +46 -0
- package/dist/layout/measure.d.ts.map +1 -0
- package/dist/layout/measure.js +307 -0
- package/dist/layout/measure.js.map +1 -0
- package/dist/layout/paint-hotkey.d.ts +45 -0
- package/dist/layout/paint-hotkey.d.ts.map +1 -0
- package/dist/layout/paint-hotkey.js +152 -0
- package/dist/layout/paint-hotkey.js.map +1 -0
- package/dist/layout/paint.d.ts +25 -0
- package/dist/layout/paint.d.ts.map +1 -0
- package/dist/layout/paint.js +189 -0
- package/dist/layout/paint.js.map +1 -0
- package/dist/layout/paint_theme.d.ts +85 -0
- package/dist/layout/paint_theme.d.ts.map +1 -0
- package/dist/layout/paint_theme.js +76 -0
- package/dist/layout/paint_theme.js.map +1 -0
- package/dist/layout/progress.d.ts +31 -0
- package/dist/layout/progress.d.ts.map +1 -0
- package/dist/layout/progress.js +83 -0
- package/dist/layout/progress.js.map +1 -0
- package/dist/layout/selection.d.ts +136 -0
- package/dist/layout/selection.d.ts.map +1 -0
- package/dist/layout/selection.js +312 -0
- package/dist/layout/selection.js.map +1 -0
- package/dist/layout/selection_gesture.d.ts +88 -0
- package/dist/layout/selection_gesture.d.ts.map +1 -0
- package/dist/layout/selection_gesture.js +239 -0
- package/dist/layout/selection_gesture.js.map +1 -0
- package/dist/layout/selection_paint.d.ts +47 -0
- package/dist/layout/selection_paint.d.ts.map +1 -0
- package/dist/layout/selection_paint.js +320 -0
- package/dist/layout/selection_paint.js.map +1 -0
- package/dist/layout/serialize.d.ts +49 -0
- package/dist/layout/serialize.d.ts.map +1 -0
- package/dist/layout/serialize.js +437 -0
- package/dist/layout/serialize.js.map +1 -0
- package/dist/layout/squeeze.d.ts +58 -0
- package/dist/layout/squeeze.d.ts.map +1 -0
- package/dist/layout/squeeze.js +239 -0
- package/dist/layout/squeeze.js.map +1 -0
- package/dist/layout/text.d.ts +44 -0
- package/dist/layout/text.d.ts.map +1 -0
- package/dist/layout/text.js +230 -0
- package/dist/layout/text.js.map +1 -0
- package/dist/layout/theme_store.d.ts +21 -0
- package/dist/layout/theme_store.d.ts.map +1 -0
- package/dist/layout/theme_store.js +133 -0
- package/dist/layout/theme_store.js.map +1 -0
- package/dist/layout/types.d.ts +564 -0
- package/dist/layout/types.d.ts.map +1 -0
- package/dist/layout/types.js +2 -0
- package/dist/layout/types.js.map +1 -0
- package/dist/layout/visual_draft.d.ts +60 -0
- package/dist/layout/visual_draft.d.ts.map +1 -0
- package/dist/layout/visual_draft.js +199 -0
- package/dist/layout/visual_draft.js.map +1 -0
- package/dist/lexicon/color.d.ts +22 -0
- package/dist/lexicon/color.d.ts.map +1 -0
- package/dist/lexicon/color.js +6 -0
- package/dist/lexicon/color.js.map +1 -0
- package/dist/lexicon/index.d.ts +15 -0
- package/dist/lexicon/index.d.ts.map +1 -0
- package/dist/lexicon/index.js +15 -0
- package/dist/lexicon/index.js.map +1 -0
- package/dist/lexicon/prominence.d.ts +46 -0
- package/dist/lexicon/prominence.d.ts.map +1 -0
- package/dist/lexicon/prominence.js +73 -0
- package/dist/lexicon/prominence.js.map +1 -0
- package/dist/lexicon/quarantine.d.ts +21 -0
- package/dist/lexicon/quarantine.d.ts.map +1 -0
- package/dist/lexicon/quarantine.js +15 -0
- package/dist/lexicon/quarantine.js.map +1 -0
- package/dist/lexicon/roles.d.ts +37 -0
- package/dist/lexicon/roles.d.ts.map +1 -0
- package/dist/lexicon/roles.js +52 -0
- package/dist/lexicon/roles.js.map +1 -0
- package/dist/lexicon/tiers.d.ts +18 -0
- package/dist/lexicon/tiers.d.ts.map +1 -0
- package/dist/lexicon/tiers.js +17 -0
- package/dist/lexicon/tiers.js.map +1 -0
- package/dist/measure/index.d.ts +43 -0
- package/dist/measure/index.d.ts.map +1 -0
- package/dist/measure/index.js +120 -0
- package/dist/measure/index.js.map +1 -0
- package/dist/render.d.ts +72 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +164 -0
- package/dist/render.js.map +1 -0
- package/dist/runtime/agents_keys.d.ts +8 -0
- package/dist/runtime/agents_keys.d.ts.map +1 -0
- package/dist/runtime/agents_keys.js +24 -0
- package/dist/runtime/agents_keys.js.map +1 -0
- package/dist/runtime/agents_peek.d.ts +44 -0
- package/dist/runtime/agents_peek.d.ts.map +1 -0
- package/dist/runtime/agents_peek.js +96 -0
- package/dist/runtime/agents_peek.js.map +1 -0
- package/dist/runtime/agents_preview.d.ts +25 -0
- package/dist/runtime/agents_preview.d.ts.map +1 -0
- package/dist/runtime/agents_preview.js +118 -0
- package/dist/runtime/agents_preview.js.map +1 -0
- package/dist/runtime/box_bus.d.ts +144 -0
- package/dist/runtime/box_bus.d.ts.map +1 -0
- package/dist/runtime/box_bus.js +74 -0
- package/dist/runtime/box_bus.js.map +1 -0
- package/dist/runtime/clipboard-image.d.ts +20 -0
- package/dist/runtime/clipboard-image.d.ts.map +1 -0
- package/dist/runtime/clipboard-image.js +62 -0
- package/dist/runtime/clipboard-image.js.map +1 -0
- package/dist/runtime/copy_toast.d.ts +46 -0
- package/dist/runtime/copy_toast.d.ts.map +1 -0
- package/dist/runtime/copy_toast.js +117 -0
- package/dist/runtime/copy_toast.js.map +1 -0
- package/dist/runtime/echo.d.ts +41 -0
- package/dist/runtime/echo.d.ts.map +1 -0
- package/dist/runtime/echo.js +112 -0
- package/dist/runtime/echo.js.map +1 -0
- package/dist/runtime/frame.d.ts +79 -0
- package/dist/runtime/frame.d.ts.map +1 -0
- package/dist/runtime/frame.js +258 -0
- package/dist/runtime/frame.js.map +1 -0
- package/dist/runtime/index.d.ts +16 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +16 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/key_buffer.d.ts +19 -0
- package/dist/runtime/key_buffer.d.ts.map +1 -0
- package/dist/runtime/key_buffer.js +24 -0
- package/dist/runtime/key_buffer.js.map +1 -0
- package/dist/runtime/keys.d.ts +66 -0
- package/dist/runtime/keys.d.ts.map +1 -0
- package/dist/runtime/keys.js +220 -0
- package/dist/runtime/keys.js.map +1 -0
- package/dist/runtime/paint_snapshot.d.ts +9 -0
- package/dist/runtime/paint_snapshot.d.ts.map +1 -0
- package/dist/runtime/paint_snapshot.js +8 -0
- package/dist/runtime/paint_snapshot.js.map +1 -0
- package/dist/runtime/paint_source.d.ts +266 -0
- package/dist/runtime/paint_source.d.ts.map +1 -0
- package/dist/runtime/paint_source.js +532 -0
- package/dist/runtime/paint_source.js.map +1 -0
- package/dist/runtime/present_loop.d.ts +11 -0
- package/dist/runtime/present_loop.d.ts.map +1 -0
- package/dist/runtime/present_loop.js +46 -0
- package/dist/runtime/present_loop.js.map +1 -0
- package/dist/runtime/present_profile.d.ts +58 -0
- package/dist/runtime/present_profile.d.ts.map +1 -0
- package/dist/runtime/present_profile.js +130 -0
- package/dist/runtime/present_profile.js.map +1 -0
- package/dist/runtime/raster.d.ts +24 -0
- package/dist/runtime/raster.d.ts.map +1 -0
- package/dist/runtime/raster.js +43 -0
- package/dist/runtime/raster.js.map +1 -0
- package/dist/runtime/renderer.d.ts +151 -0
- package/dist/runtime/renderer.d.ts.map +1 -0
- package/dist/runtime/renderer.js +1607 -0
- package/dist/runtime/renderer.js.map +1 -0
- package/dist/runtime/screenshot.d.ts +9 -0
- package/dist/runtime/screenshot.d.ts.map +1 -0
- package/dist/runtime/screenshot.js +111 -0
- package/dist/runtime/screenshot.js.map +1 -0
- package/dist/runtime/selection_host.d.ts +41 -0
- package/dist/runtime/selection_host.d.ts.map +1 -0
- package/dist/runtime/selection_host.js +190 -0
- package/dist/runtime/selection_host.js.map +1 -0
- package/dist/runtime/stderr_hold.d.ts +16 -0
- package/dist/runtime/stderr_hold.d.ts.map +1 -0
- package/dist/runtime/stderr_hold.js +23 -0
- package/dist/runtime/stderr_hold.js.map +1 -0
- package/dist/runtime/thought_birth.d.ts +25 -0
- package/dist/runtime/thought_birth.d.ts.map +1 -0
- package/dist/runtime/thought_birth.js +122 -0
- package/dist/runtime/thought_birth.js.map +1 -0
- package/dist/runtime/thought_collapsed.d.ts +35 -0
- package/dist/runtime/thought_collapsed.d.ts.map +1 -0
- package/dist/runtime/thought_collapsed.js +94 -0
- package/dist/runtime/thought_collapsed.js.map +1 -0
- package/dist/runtime/tty.d.ts +58 -0
- package/dist/runtime/tty.d.ts.map +1 -0
- package/dist/runtime/tty.js +130 -0
- package/dist/runtime/tty.js.map +1 -0
- package/dist/theme/ansi16.d.ts +34 -0
- package/dist/theme/ansi16.d.ts.map +1 -0
- package/dist/theme/ansi16.js +181 -0
- package/dist/theme/ansi16.js.map +1 -0
- package/dist/theme/ansi256.d.ts +15 -0
- package/dist/theme/ansi256.d.ts.map +1 -0
- package/dist/theme/ansi256.js +94 -0
- package/dist/theme/ansi256.js.map +1 -0
- package/dist/theme/ground.d.ts +8 -0
- package/dist/theme/ground.d.ts.map +1 -0
- package/dist/theme/ground.js +11 -0
- package/dist/theme/ground.js.map +1 -0
- package/dist/theme/index.d.ts +10 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +10 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/region.d.ts +42 -0
- package/dist/theme/region.d.ts.map +1 -0
- package/dist/theme/region.js +105 -0
- package/dist/theme/region.js.map +1 -0
- package/dist/theme/resolver.d.ts +126 -0
- package/dist/theme/resolver.d.ts.map +1 -0
- package/dist/theme/resolver.js +366 -0
- package/dist/theme/resolver.js.map +1 -0
- package/dist/theme/salience.d.ts +90 -0
- package/dist/theme/salience.d.ts.map +1 -0
- package/dist/theme/salience.js +208 -0
- package/dist/theme/salience.js.map +1 -0
- package/dist/theme/seeds.d.ts +113 -0
- package/dist/theme/seeds.d.ts.map +1 -0
- package/dist/theme/seeds.js +52 -0
- package/dist/theme/seeds.js.map +1 -0
- package/dist/theme/selection.d.ts +94 -0
- package/dist/theme/selection.d.ts.map +1 -0
- package/dist/theme/selection.js +135 -0
- package/dist/theme/selection.js.map +1 -0
- package/dist/theme/theme.d.ts +41 -0
- package/dist/theme/theme.d.ts.map +1 -0
- package/dist/theme/theme.js +34 -0
- package/dist/theme/theme.js.map +1 -0
- package/dist/widgets/composer-caret.d.ts +47 -0
- package/dist/widgets/composer-caret.d.ts.map +1 -0
- package/dist/widgets/composer-caret.js +90 -0
- package/dist/widgets/composer-caret.js.map +1 -0
- package/dist/widgets/composer-click.d.ts +30 -0
- package/dist/widgets/composer-click.d.ts.map +1 -0
- package/dist/widgets/composer-click.js +89 -0
- package/dist/widgets/composer-click.js.map +1 -0
- package/dist/widgets/composer-command.d.ts +64 -0
- package/dist/widgets/composer-command.d.ts.map +1 -0
- package/dist/widgets/composer-command.js +127 -0
- package/dist/widgets/composer-command.js.map +1 -0
- package/dist/widgets/composer-frame.d.ts +74 -0
- package/dist/widgets/composer-frame.d.ts.map +1 -0
- package/dist/widgets/composer-frame.js +284 -0
- package/dist/widgets/composer-frame.js.map +1 -0
- package/dist/widgets/composer-picker.d.ts +89 -0
- package/dist/widgets/composer-picker.d.ts.map +1 -0
- package/dist/widgets/composer-picker.js +240 -0
- package/dist/widgets/composer-picker.js.map +1 -0
- package/dist/widgets/diff.d.ts +11 -0
- package/dist/widgets/diff.d.ts.map +1 -0
- package/dist/widgets/diff.js +19 -0
- package/dist/widgets/diff.js.map +1 -0
- package/dist/widgets/expand.d.ts +28 -0
- package/dist/widgets/expand.d.ts.map +1 -0
- package/dist/widgets/expand.js +94 -0
- package/dist/widgets/expand.js.map +1 -0
- package/dist/widgets/index.d.ts +126 -0
- package/dist/widgets/index.d.ts.map +1 -0
- package/dist/widgets/index.js +455 -0
- package/dist/widgets/index.js.map +1 -0
- package/dist/widgets/internals/arrival-lang.d.ts +88 -0
- package/dist/widgets/internals/arrival-lang.d.ts.map +1 -0
- package/dist/widgets/internals/arrival-lang.js +211 -0
- package/dist/widgets/internals/arrival-lang.js.map +1 -0
- package/dist/widgets/internals/diff-expand.d.ts +93 -0
- package/dist/widgets/internals/diff-expand.d.ts.map +1 -0
- package/dist/widgets/internals/diff-expand.js +1106 -0
- package/dist/widgets/internals/diff-expand.js.map +1 -0
- package/dist/widgets/internals/embedded-syntax.d.ts +62 -0
- package/dist/widgets/internals/embedded-syntax.d.ts.map +1 -0
- package/dist/widgets/internals/embedded-syntax.js +465 -0
- package/dist/widgets/internals/embedded-syntax.js.map +1 -0
- package/dist/widgets/internals/markdown-expand.d.ts +57 -0
- package/dist/widgets/internals/markdown-expand.d.ts.map +1 -0
- package/dist/widgets/internals/markdown-expand.js +980 -0
- package/dist/widgets/internals/markdown-expand.js.map +1 -0
- package/dist/widgets/internals/overlay-syntax.d.ts +24 -0
- package/dist/widgets/internals/overlay-syntax.d.ts.map +1 -0
- package/dist/widgets/internals/overlay-syntax.js +90 -0
- package/dist/widgets/internals/overlay-syntax.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/cleanLastNewline.d.ts +6 -0
- package/dist/widgets/internals/pierre-parse/cleanLastNewline.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/cleanLastNewline.js +8 -0
- package/dist/widgets/internals/pierre-parse/cleanLastNewline.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/constants.d.ts +13 -0
- package/dist/widgets/internals/pierre-parse/constants.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/constants.js +13 -0
- package/dist/widgets/internals/pierre-parse/constants.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/detachString.d.ts +3 -0
- package/dist/widgets/internals/pierre-parse/detachString.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/detachString.js +24 -0
- package/dist/widgets/internals/pierre-parse/detachString.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/index.d.ts +8 -0
- package/dist/widgets/internals/pierre-parse/index.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/index.js +8 -0
- package/dist/widgets/internals/pierre-parse/index.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/parseDiffFromFile.d.ts +15 -0
- package/dist/widgets/internals/pierre-parse/parseDiffFromFile.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/parseDiffFromFile.js +39 -0
- package/dist/widgets/internals/pierre-parse/parseDiffFromFile.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/parsePatchFiles.d.ts +11 -0
- package/dist/widgets/internals/pierre-parse/parsePatchFiles.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/parsePatchFiles.js +621 -0
- package/dist/widgets/internals/pierre-parse/parsePatchFiles.js.map +1 -0
- package/dist/widgets/internals/pierre-parse/types.d.ts +73 -0
- package/dist/widgets/internals/pierre-parse/types.d.ts.map +1 -0
- package/dist/widgets/internals/pierre-parse/types.js +7 -0
- package/dist/widgets/internals/pierre-parse/types.js.map +1 -0
- package/dist/widgets/internals/syntax.d.ts +55 -0
- package/dist/widgets/internals/syntax.d.ts.map +1 -0
- package/dist/widgets/internals/syntax.js +261 -0
- package/dist/widgets/internals/syntax.js.map +1 -0
- package/dist/widgets/markdown.d.ts +14 -0
- package/dist/widgets/markdown.d.ts.map +1 -0
- package/dist/widgets/markdown.js +9 -0
- package/dist/widgets/markdown.js.map +1 -0
- package/dist/widgets/shadow-stream.d.ts +88 -0
- package/dist/widgets/shadow-stream.d.ts.map +1 -0
- package/dist/widgets/shadow-stream.js +359 -0
- package/dist/widgets/shadow-stream.js.map +1 -0
- package/dist/widgets/speech.d.ts +36 -0
- package/dist/widgets/speech.d.ts.map +1 -0
- package/dist/widgets/speech.js +238 -0
- package/dist/widgets/speech.js.map +1 -0
- package/dist/widgets/stream-birth.d.ts +13 -0
- package/dist/widgets/stream-birth.d.ts.map +1 -0
- package/dist/widgets/stream-birth.js +70 -0
- package/dist/widgets/stream-birth.js.map +1 -0
- package/dist/widgets/syntax-boot.d.ts +25 -0
- package/dist/widgets/syntax-boot.d.ts.map +1 -0
- package/dist/widgets/syntax-boot.js +181 -0
- package/dist/widgets/syntax-boot.js.map +1 -0
- package/dist/widgets/text.d.ts +16 -0
- package/dist/widgets/text.d.ts.map +1 -0
- package/dist/widgets/text.js +14 -0
- package/dist/widgets/text.js.map +1 -0
- package/dist/widgets/transcript.d.ts +44 -0
- package/dist/widgets/transcript.d.ts.map +1 -0
- package/dist/widgets/transcript.js +106 -0
- package/dist/widgets/transcript.js.map +1 -0
- package/doom.vert +1840 -0
- package/fonts/DejaVuSans.ttf +0 -0
- package/fonts/DejaVuSansMono.ttf +0 -0
- package/fonts/LICENSE-DejaVu.txt +187 -0
- package/fonts/README.md +6 -0
- package/gradient.vert +75 -0
- package/package.json +146 -3
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./index.js — display-column text width (terminal columns).
|
|
3
|
+
* Thin façade over string-width + grapheme-aware split.
|
|
4
|
+
*
|
|
5
|
+
* Dependency choice (2026-07 npm survey): string-width@8 — grapheme clusters
|
|
6
|
+
* via Intl.Segmenter, RGI/ZWJ emoji → 2 cols, combining/format → 0, TR11
|
|
7
|
+
* ambiguous-narrow default.
|
|
8
|
+
* Rejected: eastasianwidth (Ambiguous→2 breaks combining), wcwidth (stale),
|
|
9
|
+
* kitchen-sink TUI kits, Bun-only stringWidth.
|
|
10
|
+
*
|
|
11
|
+
* One module-level Segmenter. Per-call `new Intl.Segmenter` was ~27 ms of a
|
|
12
|
+
* 200×50 catalog paintFrame. ASCII + box/block drawing (U+2500–259F) is
|
|
13
|
+
* width-1 per code unit — slice, do not segment.
|
|
14
|
+
*
|
|
15
|
+
* TWO_COLUMN_SYMBOLS are Neutral under UAX #11 (string-width → 1) but the
|
|
16
|
+
* fonts we paint ink two cells. Layout width is 2. The mate is an emitted
|
|
17
|
+
* space, not a CJK placeholder: emit skips placeholders, and a wcwidth-1
|
|
18
|
+
* TTY would then draw the next glyph on top of the ink (⏎: Confirm).
|
|
19
|
+
*/
|
|
20
|
+
/** Printable ASCII, or box-drawing / block elements — one column per code unit. */
|
|
21
|
+
export declare function isUnitWidthRun(text: string): boolean;
|
|
22
|
+
/** Width-2 Neutral cluster whose mate must be an emitted space, not a CJK placeholder. */
|
|
23
|
+
export declare function isTwoColumnSymbol(cluster: string): boolean;
|
|
24
|
+
export type MeasureOpts = {
|
|
25
|
+
ambiguousIsNarrow?: boolean;
|
|
26
|
+
countAnsiEscapeCodes?: boolean;
|
|
27
|
+
};
|
|
28
|
+
export type Measure = (text: string) => number;
|
|
29
|
+
export declare function displayWidth(text: string, opts?: MeasureOpts): number;
|
|
30
|
+
/** Width of a single grapheme cluster (0 | 1 | 2+ via string-width). */
|
|
31
|
+
export declare function graphemeWidth(cluster: string): number;
|
|
32
|
+
/**
|
|
33
|
+
* First grapheme cluster. Unlike {@link splitAtWidth}(text, 1), a wide
|
|
34
|
+
* cluster is returned whole — paint walks must not drop ⏎ / CJK.
|
|
35
|
+
*/
|
|
36
|
+
export declare function takeGrapheme(text: string): [cluster: string, rest: string];
|
|
37
|
+
/**
|
|
38
|
+
* Split `text` so `head` fits in `maxColumns` display columns.
|
|
39
|
+
* Never splits mid-grapheme-cluster.
|
|
40
|
+
*/
|
|
41
|
+
export declare function splitAtWidth(text: string, maxColumns: number): [head: string, tail: string];
|
|
42
|
+
export declare const defaultMeasure: Measure;
|
|
43
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/measure/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAmBH,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAQpD;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK1D;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAS/C,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAWrE;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAO1E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAuB3F;AAED,eAAO,MAAM,cAAc,EAAE,OAAgC,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./index.js — display-column text width (terminal columns).
|
|
3
|
+
* Thin façade over string-width + grapheme-aware split.
|
|
4
|
+
*
|
|
5
|
+
* Dependency choice (2026-07 npm survey): string-width@8 — grapheme clusters
|
|
6
|
+
* via Intl.Segmenter, RGI/ZWJ emoji → 2 cols, combining/format → 0, TR11
|
|
7
|
+
* ambiguous-narrow default.
|
|
8
|
+
* Rejected: eastasianwidth (Ambiguous→2 breaks combining), wcwidth (stale),
|
|
9
|
+
* kitchen-sink TUI kits, Bun-only stringWidth.
|
|
10
|
+
*
|
|
11
|
+
* One module-level Segmenter. Per-call `new Intl.Segmenter` was ~27 ms of a
|
|
12
|
+
* 200×50 catalog paintFrame. ASCII + box/block drawing (U+2500–259F) is
|
|
13
|
+
* width-1 per code unit — slice, do not segment.
|
|
14
|
+
*
|
|
15
|
+
* TWO_COLUMN_SYMBOLS are Neutral under UAX #11 (string-width → 1) but the
|
|
16
|
+
* fonts we paint ink two cells. Layout width is 2. The mate is an emitted
|
|
17
|
+
* space, not a CJK placeholder: emit skips placeholders, and a wcwidth-1
|
|
18
|
+
* TTY would then draw the next glyph on top of the ink (⏎: Confirm).
|
|
19
|
+
*/
|
|
20
|
+
import stringWidth from "string-width";
|
|
21
|
+
const GRAPHEME_SEGMENTER = new Intl.Segmenter(undefined, {
|
|
22
|
+
granularity: "grapheme",
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Code points that occupy two columns in product fonts while remaining
|
|
26
|
+
* East-Asian-width Neutral. Add a code point here when a glyph overlaps
|
|
27
|
+
* the next cell; do not add true double-width (CJK / RGI emoji).
|
|
28
|
+
*/
|
|
29
|
+
const TWO_COLUMN_SYMBOLS = new Set([
|
|
30
|
+
0x23_ce, // RETURN SYMBOL
|
|
31
|
+
0x24_aa, // scheme_repl
|
|
32
|
+
0x24_b2, // scheme_watch
|
|
33
|
+
]);
|
|
34
|
+
/** Printable ASCII, or box-drawing / block elements — one column per code unit. */
|
|
35
|
+
export function isUnitWidthRun(text) {
|
|
36
|
+
for (let i = 0; i < text.length; i++) {
|
|
37
|
+
const c = text.charCodeAt(i);
|
|
38
|
+
if (c >= 0x20 && c <= 0x7e)
|
|
39
|
+
continue;
|
|
40
|
+
if (c >= 0x25_00 && c <= 0x25_9f)
|
|
41
|
+
continue;
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
/** Width-2 Neutral cluster whose mate must be an emitted space, not a CJK placeholder. */
|
|
47
|
+
export function isTwoColumnSymbol(cluster) {
|
|
48
|
+
if (cluster.length === 0)
|
|
49
|
+
return false;
|
|
50
|
+
const cp = cluster.codePointAt(0);
|
|
51
|
+
if (cp === undefined || !TWO_COLUMN_SYMBOLS.has(cp))
|
|
52
|
+
return false;
|
|
53
|
+
return cluster.length === String.fromCodePoint(cp).length;
|
|
54
|
+
}
|
|
55
|
+
function stringWidthOf(text, opts) {
|
|
56
|
+
return stringWidth(text, {
|
|
57
|
+
ambiguousIsNarrow: opts?.ambiguousIsNarrow ?? true,
|
|
58
|
+
countAnsiEscapeCodes: opts?.countAnsiEscapeCodes ?? false,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export function displayWidth(text, opts) {
|
|
62
|
+
const w = stringWidthOf(text, opts);
|
|
63
|
+
if (w === 0 || isUnitWidthRun(text))
|
|
64
|
+
return w;
|
|
65
|
+
let boost = 0;
|
|
66
|
+
for (const ch of text) {
|
|
67
|
+
const cp = ch.codePointAt(0);
|
|
68
|
+
if (cp === undefined || !TWO_COLUMN_SYMBOLS.has(cp))
|
|
69
|
+
continue;
|
|
70
|
+
const native = stringWidthOf(ch, opts);
|
|
71
|
+
if (native < 2)
|
|
72
|
+
boost += 2 - native;
|
|
73
|
+
}
|
|
74
|
+
return w + boost;
|
|
75
|
+
}
|
|
76
|
+
/** Width of a single grapheme cluster (0 | 1 | 2+ via string-width). */
|
|
77
|
+
export function graphemeWidth(cluster) {
|
|
78
|
+
return displayWidth(cluster);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* First grapheme cluster. Unlike {@link splitAtWidth}(text, 1), a wide
|
|
82
|
+
* cluster is returned whole — paint walks must not drop ⏎ / CJK.
|
|
83
|
+
*/
|
|
84
|
+
export function takeGrapheme(text) {
|
|
85
|
+
if (text.length === 0)
|
|
86
|
+
return ["", ""];
|
|
87
|
+
if (isUnitWidthRun(text))
|
|
88
|
+
return [text[0], text.slice(1)];
|
|
89
|
+
for (const { segment } of GRAPHEME_SEGMENTER.segment(text)) {
|
|
90
|
+
return [segment, text.slice(segment.length)];
|
|
91
|
+
}
|
|
92
|
+
return ["", ""];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Split `text` so `head` fits in `maxColumns` display columns.
|
|
96
|
+
* Never splits mid-grapheme-cluster.
|
|
97
|
+
*/
|
|
98
|
+
export function splitAtWidth(text, maxColumns) {
|
|
99
|
+
if (maxColumns <= 0) {
|
|
100
|
+
return ["", text];
|
|
101
|
+
}
|
|
102
|
+
if (isUnitWidthRun(text)) {
|
|
103
|
+
if (text.length <= maxColumns)
|
|
104
|
+
return [text, ""];
|
|
105
|
+
return [text.slice(0, maxColumns), text.slice(maxColumns)];
|
|
106
|
+
}
|
|
107
|
+
let used = 0;
|
|
108
|
+
let headEnd = 0;
|
|
109
|
+
for (const { segment, index } of GRAPHEME_SEGMENTER.segment(text)) {
|
|
110
|
+
const w = displayWidth(segment);
|
|
111
|
+
if (used + w > maxColumns) {
|
|
112
|
+
return [text.slice(0, headEnd), text.slice(headEnd)];
|
|
113
|
+
}
|
|
114
|
+
used += w;
|
|
115
|
+
headEnd = index + segment.length;
|
|
116
|
+
}
|
|
117
|
+
return [text, ""];
|
|
118
|
+
}
|
|
119
|
+
export const defaultMeasure = (t) => displayWidth(t);
|
|
120
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/measure/index.ts"],"names":[],"mappings":"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"}
|
package/dist/render.d.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI-thread face: probe + attune + TTY enter + Renderer.
|
|
3
|
+
* Teardown is split — do not collapse into one stop().
|
|
4
|
+
*/
|
|
5
|
+
import type { Readable, Writable } from "node:stream";
|
|
6
|
+
import { type ThemeBinding } from "./layout/paint_theme.js";
|
|
7
|
+
import type { PaintLocal, RetainedPaintSource } from "./runtime/paint_source.js";
|
|
8
|
+
import { type PresentConfig } from "./runtime/present_profile.js";
|
|
9
|
+
import { type BoxCadencePort, type TtyInput, type TtyOutput } from "./runtime/renderer.js";
|
|
10
|
+
import { type TtyOptions } from "./runtime/tty.js";
|
|
11
|
+
/** OSC 11 wait — too short only means default ground (wrong one direction). */
|
|
12
|
+
export declare const GROUND_PROBE_TIMEOUT_MS = 80;
|
|
13
|
+
/** Post-probe / pre-exit stdin drain — late DA1/OSC11 must not reach the shell. */
|
|
14
|
+
export declare const STDIN_DRAIN_MS = 50;
|
|
15
|
+
export type AttuneStdin = Readable & {
|
|
16
|
+
readonly isTTY?: boolean;
|
|
17
|
+
setRawMode?(mode: boolean): void;
|
|
18
|
+
};
|
|
19
|
+
export type AttuneStdout = Writable & {
|
|
20
|
+
readonly isTTY?: boolean;
|
|
21
|
+
};
|
|
22
|
+
/** process.stderr / test stream — held while alt-screen occupies the glass. */
|
|
23
|
+
export type AttuneStderr = Writable & {
|
|
24
|
+
readonly isTTY?: boolean;
|
|
25
|
+
};
|
|
26
|
+
/** process.stdout / test stream — columns + resize for the cadence output face. */
|
|
27
|
+
export type StdioStdout = AttuneStdout & {
|
|
28
|
+
columns?: number;
|
|
29
|
+
rows?: number;
|
|
30
|
+
on?(event: "resize", listener: () => void): unknown;
|
|
31
|
+
};
|
|
32
|
+
/** stdin → {@link TtyInput}. Same adapter the harness host uses. */
|
|
33
|
+
export declare function processStdioInput(stdin: AttuneStdin): TtyInput;
|
|
34
|
+
/** stdout → {@link TtyOutput}. */
|
|
35
|
+
export declare function processStdioOutput(stdout: StdioStdout): TtyOutput;
|
|
36
|
+
export interface StartRenderOptions {
|
|
37
|
+
readonly stdin: AttuneStdin;
|
|
38
|
+
readonly stdout: AttuneStdout;
|
|
39
|
+
/** Held during alt-screen when both this and stdout are TTYs. Default process.stderr. */
|
|
40
|
+
readonly stderr?: AttuneStderr;
|
|
41
|
+
readonly port: BoxCadencePort;
|
|
42
|
+
readonly input: TtyInput;
|
|
43
|
+
readonly output: TtyOutput;
|
|
44
|
+
readonly targetFps?: number;
|
|
45
|
+
readonly onQuit?: () => void;
|
|
46
|
+
/** Armed Ctrl-C hint. Default `"exit"`. */
|
|
47
|
+
readonly quitAction?: () => string;
|
|
48
|
+
readonly onReady?: () => void;
|
|
49
|
+
readonly onFirstPaint?: () => void;
|
|
50
|
+
readonly composerBoxKey?: string;
|
|
51
|
+
readonly composerFrameKey?: string;
|
|
52
|
+
readonly paintSource?: RetainedPaintSource;
|
|
53
|
+
readonly paintLocal?: PaintLocal;
|
|
54
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
55
|
+
readonly timeoutMs?: number;
|
|
56
|
+
readonly tty?: TtyOptions;
|
|
57
|
+
}
|
|
58
|
+
export interface RenderHandle {
|
|
59
|
+
stop(): void;
|
|
60
|
+
restore(): void;
|
|
61
|
+
}
|
|
62
|
+
export interface AttunedBoot {
|
|
63
|
+
readonly binding: ThemeBinding;
|
|
64
|
+
readonly present: PresentConfig;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Read-and-discard stdin briefly. Call while still owning the TTY (ideally raw)
|
|
68
|
+
* so late capability replies never land as shell-prompt garbage.
|
|
69
|
+
*/
|
|
70
|
+
export declare function drainStdinQuiet(stdin: AttuneStdin, ms?: number): Promise<void>;
|
|
71
|
+
export declare function startRender(opts: StartRenderOptions): Promise<RenderHandle>;
|
|
72
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/dist/render.js
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { detectCapabilities } from "./capabilities/index.js";
|
|
2
|
+
import { attuneTheme, setActiveTheme, setColorDepth } from "./layout/paint_theme.js";
|
|
3
|
+
import { resolvePresentConfig } from "./runtime/present_profile.js";
|
|
4
|
+
import { Renderer } from "./runtime/renderer.js";
|
|
5
|
+
import { holdStderr } from "./runtime/stderr_hold.js";
|
|
6
|
+
import { createTtySession } from "./runtime/tty.js";
|
|
7
|
+
import { canvasPolarity } from "./theme/ansi16.js";
|
|
8
|
+
import { bootSyntax } from "./widgets/syntax-boot.js";
|
|
9
|
+
/** OSC 11 wait — too short only means default ground (wrong one direction). */
|
|
10
|
+
export const GROUND_PROBE_TIMEOUT_MS = 80;
|
|
11
|
+
/** Post-probe / pre-exit stdin drain — late DA1/OSC11 must not reach the shell. */
|
|
12
|
+
export const STDIN_DRAIN_MS = 50;
|
|
13
|
+
/** stdin → {@link TtyInput}. Same adapter the harness host uses. */
|
|
14
|
+
export function processStdioInput(stdin) {
|
|
15
|
+
return {
|
|
16
|
+
onData(handler) {
|
|
17
|
+
if (typeof stdin.setEncoding === "function")
|
|
18
|
+
stdin.setEncoding("utf8");
|
|
19
|
+
stdin.resume();
|
|
20
|
+
stdin.on("data", (chunk) => handler(chunk));
|
|
21
|
+
},
|
|
22
|
+
setRawMode(enabled) {
|
|
23
|
+
if (stdin.isTTY)
|
|
24
|
+
stdin.setRawMode?.(enabled);
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** stdout → {@link TtyOutput}. */
|
|
29
|
+
export function processStdioOutput(stdout) {
|
|
30
|
+
return {
|
|
31
|
+
write(text) {
|
|
32
|
+
stdout.write(text);
|
|
33
|
+
},
|
|
34
|
+
get cols() {
|
|
35
|
+
return stdout.columns ?? 80;
|
|
36
|
+
},
|
|
37
|
+
get rows() {
|
|
38
|
+
return stdout.rows ?? 24;
|
|
39
|
+
},
|
|
40
|
+
onResize(handler) {
|
|
41
|
+
stdout.on?.("resize", handler);
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Read-and-discard stdin briefly. Call while still owning the TTY (ideally raw)
|
|
47
|
+
* so late capability replies never land as shell-prompt garbage.
|
|
48
|
+
*/
|
|
49
|
+
export function drainStdinQuiet(stdin, ms = STDIN_DRAIN_MS) {
|
|
50
|
+
if (!stdin.isTTY)
|
|
51
|
+
return Promise.resolve();
|
|
52
|
+
return new Promise((resolve) => {
|
|
53
|
+
const onData = () => {
|
|
54
|
+
/* discard */
|
|
55
|
+
};
|
|
56
|
+
stdin.resume();
|
|
57
|
+
stdin.on("data", onData);
|
|
58
|
+
setTimeout(() => {
|
|
59
|
+
stdin.off("data", onData);
|
|
60
|
+
resolve();
|
|
61
|
+
}, ms);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
async function probeAndAttune(stdin, stdout, env, timeoutMs) {
|
|
65
|
+
const setRawMode = typeof stdin.isTTY === "boolean" && stdin.isTTY && typeof stdin.setRawMode === "function"
|
|
66
|
+
? stdin.setRawMode.bind(stdin)
|
|
67
|
+
: null;
|
|
68
|
+
if (setRawMode) {
|
|
69
|
+
try {
|
|
70
|
+
setRawMode(true);
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
/* non-fatal: probe still runs; echo risk remains */
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
let binding;
|
|
77
|
+
let present;
|
|
78
|
+
try {
|
|
79
|
+
try {
|
|
80
|
+
const { caps } = await detectCapabilities({
|
|
81
|
+
stdin,
|
|
82
|
+
stdout,
|
|
83
|
+
env,
|
|
84
|
+
timeoutMs,
|
|
85
|
+
batch: true,
|
|
86
|
+
});
|
|
87
|
+
present = resolvePresentConfig({
|
|
88
|
+
env,
|
|
89
|
+
probedDepth: caps.colorDepth,
|
|
90
|
+
probedSync2026: caps.sync2026,
|
|
91
|
+
});
|
|
92
|
+
const rgb = caps.groundRgb;
|
|
93
|
+
binding = attuneTheme({
|
|
94
|
+
depth: present.colorDepth,
|
|
95
|
+
groundRgb: rgb,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
present = resolvePresentConfig({ env });
|
|
100
|
+
binding = attuneTheme({ depth: present.colorDepth });
|
|
101
|
+
}
|
|
102
|
+
await drainStdinQuiet(stdin, STDIN_DRAIN_MS);
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
if (setRawMode) {
|
|
106
|
+
try {
|
|
107
|
+
setRawMode(false);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
/* best-effort */
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
setActiveTheme(binding.theme);
|
|
115
|
+
setColorDepth(binding.depth);
|
|
116
|
+
return { binding, present };
|
|
117
|
+
}
|
|
118
|
+
export async function startRender(opts) {
|
|
119
|
+
const env = opts.env ?? process.env;
|
|
120
|
+
const { binding, present } = await probeAndAttune(opts.stdin, opts.stdout, env, opts.timeoutMs ?? GROUND_PROBE_TIMEOUT_MS);
|
|
121
|
+
// Same law as `fx`: per-frame 2026 unless QD_SYNC=0. Probe does not
|
|
122
|
+
// turn the bracket off — that is what made storybook look vsync-off.
|
|
123
|
+
const sync2026 = opts.tty?.sync2026 ?? env.QD_SYNC !== "0";
|
|
124
|
+
const tty = createTtySession(opts.tty ?? {
|
|
125
|
+
sync2026,
|
|
126
|
+
});
|
|
127
|
+
const stderr = opts.stderr ?? process.stderr;
|
|
128
|
+
const hold = opts.stdout.isTTY === true && stderr.isTTY === true ? holdStderr(stderr) : null;
|
|
129
|
+
opts.stdout.write(tty.enterBytes());
|
|
130
|
+
tty.markEntered();
|
|
131
|
+
const host = new Renderer({
|
|
132
|
+
port: opts.port,
|
|
133
|
+
input: opts.input,
|
|
134
|
+
output: opts.output,
|
|
135
|
+
theme: binding,
|
|
136
|
+
targetFps: opts.targetFps ?? present.targetFps,
|
|
137
|
+
flourishHz: present.flourishHz,
|
|
138
|
+
sync2026,
|
|
139
|
+
onQuit: opts.onQuit,
|
|
140
|
+
quitAction: opts.quitAction,
|
|
141
|
+
onReady: opts.onReady,
|
|
142
|
+
onFirstPaint: opts.onFirstPaint,
|
|
143
|
+
composerBoxKey: opts.composerBoxKey,
|
|
144
|
+
composerFrameKey: opts.composerFrameKey,
|
|
145
|
+
paintSource: opts.paintSource,
|
|
146
|
+
paintLocal: opts.paintLocal,
|
|
147
|
+
});
|
|
148
|
+
host.start();
|
|
149
|
+
void bootSyntax(canvasPolarity(binding.theme.ground)).then(() => host.requestPaint());
|
|
150
|
+
return {
|
|
151
|
+
stop() {
|
|
152
|
+
host.stop();
|
|
153
|
+
},
|
|
154
|
+
restore() {
|
|
155
|
+
if (tty.entered) {
|
|
156
|
+
opts.stdout.write(tty.exitBytes());
|
|
157
|
+
tty.markExited();
|
|
158
|
+
}
|
|
159
|
+
// After leave-alt — held bytes must land on the primary screen.
|
|
160
|
+
hold?.release();
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drawer row keys are `session:<id>`, `call:<id>`, `bot:<id>`. Paint
|
|
3
|
+
* children append a suffix (`:name`, `:id-line`, …). Hits report the
|
|
4
|
+
* child; restore / hover want the row key.
|
|
5
|
+
*/
|
|
6
|
+
export declare function agentsRowKeyFromHit(key: string): string | null;
|
|
7
|
+
export declare function sessionIdFromAgentsKey(key: string): string | null;
|
|
8
|
+
//# sourceMappingURL=agents_keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents_keys.d.ts","sourceRoot":"","sources":["../../src/runtime/agents_keys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK9D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKjE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drawer row keys are `session:<id>`, `call:<id>`, `bot:<id>`. Paint
|
|
3
|
+
* children append a suffix (`:name`, `:id-line`, …). Hits report the
|
|
4
|
+
* child; restore / hover want the row key.
|
|
5
|
+
*/
|
|
6
|
+
const SESSION_PREFIX = "session:";
|
|
7
|
+
const ROW = /^(session|call|bot):/;
|
|
8
|
+
const CHILD = /(?::name|:id-line|:id-row|:id|:title|:mark|:status|:recap|:indent|:dive:\d+)$/;
|
|
9
|
+
export function agentsRowKeyFromHit(key) {
|
|
10
|
+
if (key.includes(":gap:") || !ROW.test(key))
|
|
11
|
+
return null;
|
|
12
|
+
let cur = key;
|
|
13
|
+
while (CHILD.test(cur))
|
|
14
|
+
cur = cur.replace(CHILD, "");
|
|
15
|
+
return ROW.test(cur) && cur !== "session:" && cur !== "call:" && cur !== "bot:" ? cur : null;
|
|
16
|
+
}
|
|
17
|
+
export function sessionIdFromAgentsKey(key) {
|
|
18
|
+
const row = agentsRowKeyFromHit(key);
|
|
19
|
+
if (!row?.startsWith(SESSION_PREFIX))
|
|
20
|
+
return null;
|
|
21
|
+
const id = row.slice(SESSION_PREFIX.length).trim();
|
|
22
|
+
return id === "" ? null : id;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=agents_keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents_keys.js","sourceRoot":"","sources":["../../src/runtime/agents_keys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,MAAM,GAAG,GAAG,sBAAsB,CAAC;AACnC,MAAM,KAAK,GAAG,+EAA+E,CAAC;AAE9F,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { LayoutNode } from "../layout/types.js";
|
|
2
|
+
export declare const APP_AGENTS_PEEK_KEY = "agents:peek";
|
|
3
|
+
export declare const APP_AGENTS_PEEK_OVERLAY_KEY = "agents:peek-overlay";
|
|
4
|
+
/** Gap between the drawer panel and the peek. */
|
|
5
|
+
export declare const AGENTS_PEEK_GAP = 1;
|
|
6
|
+
/** Gap between the peek's right edge and the viewport. */
|
|
7
|
+
export declare const AGENTS_PEEK_RIGHT_MARGIN = 1;
|
|
8
|
+
/** Plaque height including pad. */
|
|
9
|
+
export declare const AGENTS_PEEK_MAX_HEIGHT = 9;
|
|
10
|
+
export type AgentsPeekPlace = {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
w: number;
|
|
14
|
+
h: number;
|
|
15
|
+
side: "down" | "up";
|
|
16
|
+
};
|
|
17
|
+
export declare function placeAgentsPeek(args: {
|
|
18
|
+
anchor: {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
w: number;
|
|
22
|
+
h: number;
|
|
23
|
+
};
|
|
24
|
+
panel: {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
w: number;
|
|
28
|
+
h: number;
|
|
29
|
+
};
|
|
30
|
+
cols: number;
|
|
31
|
+
rows: number;
|
|
32
|
+
size: {
|
|
33
|
+
w: number;
|
|
34
|
+
h: number;
|
|
35
|
+
};
|
|
36
|
+
}): AgentsPeekPlace | null;
|
|
37
|
+
export declare function withAgentsPeek(args: {
|
|
38
|
+
root: LayoutNode;
|
|
39
|
+
peek: LayoutNode;
|
|
40
|
+
focusKey: string;
|
|
41
|
+
cols: number;
|
|
42
|
+
rows: number;
|
|
43
|
+
}): LayoutNode;
|
|
44
|
+
//# sourceMappingURL=agents_peek.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents_peek.d.ts","sourceRoot":"","sources":["../../src/runtime/agents_peek.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AACjE,iDAAiD;AACjD,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,0DAA0D;AAC1D,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,mCAAmC;AACnC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChC,GAAG,eAAe,GAAG,IAAI,CAwBzB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,UAAU,CAyCb"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agents-drawer peek — same-fill plaque next to the focused row.
|
|
3
|
+
*
|
|
4
|
+
* Placement is the copy-toast grain: prefer top-aligned to the anchor,
|
|
5
|
+
* flip to bottom-align when that hangs off the viewport, then clamp.
|
|
6
|
+
* Horizontal seat is 1 cell off the panel's right edge, and 1 cell
|
|
7
|
+
* in from the viewport's right edge. No rim.
|
|
8
|
+
*/
|
|
9
|
+
import { layout } from "../layout/engine.js";
|
|
10
|
+
import { measureNode } from "../layout/measure.js";
|
|
11
|
+
export const APP_AGENTS_PEEK_KEY = "agents:peek";
|
|
12
|
+
export const APP_AGENTS_PEEK_OVERLAY_KEY = "agents:peek-overlay";
|
|
13
|
+
/** Gap between the drawer panel and the peek. */
|
|
14
|
+
export const AGENTS_PEEK_GAP = 1;
|
|
15
|
+
/** Gap between the peek's right edge and the viewport. */
|
|
16
|
+
export const AGENTS_PEEK_RIGHT_MARGIN = 1;
|
|
17
|
+
/** Plaque height including pad. */
|
|
18
|
+
export const AGENTS_PEEK_MAX_HEIGHT = 9;
|
|
19
|
+
export function placeAgentsPeek(args) {
|
|
20
|
+
const right = args.panel.x + args.panel.w + AGENTS_PEEK_GAP;
|
|
21
|
+
const maxW = Math.max(0, args.cols - right - AGENTS_PEEK_RIGHT_MARGIN);
|
|
22
|
+
if (maxW < 1 || args.rows < 1)
|
|
23
|
+
return null;
|
|
24
|
+
const w = Math.min(Math.max(1, args.size.w), maxW);
|
|
25
|
+
const h = Math.min(Math.max(1, args.size.h), args.rows);
|
|
26
|
+
const x = clamp(right, 0, Math.max(0, args.cols - w - AGENTS_PEEK_RIGHT_MARGIN));
|
|
27
|
+
const downY = args.anchor.y;
|
|
28
|
+
const upY = args.anchor.y + args.anchor.h - h;
|
|
29
|
+
const downFits = downY >= 0 && downY + h <= args.rows;
|
|
30
|
+
const upFits = upY >= 0 && upY + h <= args.rows;
|
|
31
|
+
let side;
|
|
32
|
+
let y;
|
|
33
|
+
if (downFits) {
|
|
34
|
+
side = "down";
|
|
35
|
+
y = downY;
|
|
36
|
+
}
|
|
37
|
+
else if (upFits) {
|
|
38
|
+
side = "up";
|
|
39
|
+
y = upY;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
side = "down";
|
|
43
|
+
y = clamp(downY, 0, Math.max(0, args.rows - h));
|
|
44
|
+
}
|
|
45
|
+
return { x, y, w, h, side };
|
|
46
|
+
}
|
|
47
|
+
export function withAgentsPeek(args) {
|
|
48
|
+
if (args.root.type !== "box")
|
|
49
|
+
return args.root;
|
|
50
|
+
const frame = layout(args.root, { w: args.cols, h: args.rows });
|
|
51
|
+
const panel = frame.byKey.get("agents:panel");
|
|
52
|
+
const anchor = frame.byKey.get(args.focusKey);
|
|
53
|
+
if (panel === undefined || anchor === undefined)
|
|
54
|
+
return args.root;
|
|
55
|
+
if (anchor.hitRect.w < 1 || anchor.hitRect.h < 1)
|
|
56
|
+
return args.root;
|
|
57
|
+
const room = args.cols - (panel.hitRect.x + panel.hitRect.w) - AGENTS_PEEK_GAP - AGENTS_PEEK_RIGHT_MARGIN;
|
|
58
|
+
if (room < 1)
|
|
59
|
+
return args.root;
|
|
60
|
+
const measured = measureNode(args.peek, room, args.rows);
|
|
61
|
+
const size = {
|
|
62
|
+
w: Math.max(1, measured.w),
|
|
63
|
+
h: Math.min(Math.max(1, measured.h), AGENTS_PEEK_MAX_HEIGHT, args.rows),
|
|
64
|
+
};
|
|
65
|
+
const place = placeAgentsPeek({
|
|
66
|
+
anchor: anchor.hitRect,
|
|
67
|
+
panel: panel.hitRect,
|
|
68
|
+
cols: args.cols,
|
|
69
|
+
rows: args.rows,
|
|
70
|
+
size,
|
|
71
|
+
});
|
|
72
|
+
if (place === null)
|
|
73
|
+
return args.root;
|
|
74
|
+
const peek = args.peek.type === "box"
|
|
75
|
+
? {
|
|
76
|
+
...args.peek,
|
|
77
|
+
style: { ...args.peek.style, width: place.w, height: place.h, overflow: "hidden" },
|
|
78
|
+
}
|
|
79
|
+
: args.peek;
|
|
80
|
+
return {
|
|
81
|
+
...args.root,
|
|
82
|
+
children: [
|
|
83
|
+
...(args.root.children ?? []),
|
|
84
|
+
{
|
|
85
|
+
type: "overlay",
|
|
86
|
+
key: APP_AGENTS_PEEK_OVERLAY_KEY,
|
|
87
|
+
origin: { x: place.x, y: place.y },
|
|
88
|
+
children: [peek],
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function clamp(n, lo, hi) {
|
|
94
|
+
return Math.min(hi, Math.max(lo, n));
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=agents_peek.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents_peek.js","sourceRoot":"","sources":["../../src/runtime/agents_peek.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { LayoutNode } from "../layout/types.js";
|
|
2
|
+
export declare const APP_AGENTS_PREVIEW_OVERLAY_KEY = "agents:preview-overlay";
|
|
3
|
+
export declare const APP_AGENTS_PREVIEW_KEY = "agents:preview";
|
|
4
|
+
export declare const APP_AGENTS_PREVIEW_CHROME_KEY = "agents:preview:chrome";
|
|
5
|
+
export declare const APP_AGENTS_PREVIEW_BODY_KEY = "agents:preview:body";
|
|
6
|
+
export declare const APP_AGENTS_PREVIEW_VIEWPORT_KEY = "agents:preview:viewport";
|
|
7
|
+
export declare const APP_AGENTS_PREVIEW_TAPE_KEY = "agents:preview:tape";
|
|
8
|
+
/** Viewport fraction for the peek modal. */
|
|
9
|
+
export declare const AGENTS_PREVIEW_SCALE = 0.9;
|
|
10
|
+
export declare function agentsPreviewRect(cols: number, rows: number): {
|
|
11
|
+
readonly x: number;
|
|
12
|
+
readonly y: number;
|
|
13
|
+
readonly w: number;
|
|
14
|
+
readonly h: number;
|
|
15
|
+
};
|
|
16
|
+
export declare function withAgentsPreview(args: {
|
|
17
|
+
readonly root: LayoutNode;
|
|
18
|
+
readonly tape: LayoutNode;
|
|
19
|
+
readonly cols: number;
|
|
20
|
+
readonly rows: number;
|
|
21
|
+
readonly title?: string;
|
|
22
|
+
readonly scroll?: number;
|
|
23
|
+
readonly atBottom?: boolean;
|
|
24
|
+
}): LayoutNode;
|
|
25
|
+
//# sourceMappingURL=agents_preview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents_preview.d.ts","sourceRoot":"","sources":["../../src/runtime/agents_preview.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAcrD,eAAO,MAAM,8BAA8B,2BAA2B,CAAC;AACvE,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AACvD,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AACrE,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AACjE,eAAO,MAAM,+BAA+B,4BAA4B,CAAC;AACzE,eAAO,MAAM,2BAA2B,wBAAwB,CAAC;AAEjE,4CAA4C;AAC5C,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAIxC,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CASpF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,UAAU,CA8Eb"}
|