rovecode 0.3.2 → 0.4.0-beta.2
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/CHANGELOG.md +512 -0
- package/README.md +33 -45
- package/bin/rovecode.js +24 -0
- package/dist/cli/app-dybnr56b.js +2 -0
- package/dist/cli/ask-user-p8hq4xgj.js +2 -0
- package/dist/cli/auth-login-ewpgw5sm.js +2 -0
- package/dist/cli/auth-m8p9grty.js +2 -0
- package/dist/cli/bench-xv3ypwev.js +9 -0
- package/dist/cli/catalog-737wb2s0.js +2 -0
- package/dist/cli/cli-arhg40m0.js +2 -0
- package/dist/cli/client-cf2pxx8q.js +2 -0
- package/dist/cli/commands-3p7e4xxs.js +2 -0
- package/dist/cli/connect-3q93d7cb.js +2 -0
- package/dist/cli/context-cmd-eqxmxhzq.js +2 -0
- package/dist/cli/context-report-hbw9zfes.js +2 -0
- package/dist/cli/count-remote-mby98cd0.js +2 -0
- package/dist/cli/design-122y0axd.js +2 -0
- package/dist/cli/dispatch-b4egzvvh.js +2 -0
- package/dist/cli/doctor-x4jkv72e.js +3 -0
- package/dist/cli/executor-ftvg6tsy.js +2 -0
- package/dist/cli/export-pdgdhkch.js +2 -0
- package/dist/cli/files-cez9a96p.js +2 -0
- package/dist/cli/gauntlet-r3xxaszc.js +2 -0
- package/dist/cli/gauntlet-runner-r515m7kk.js +10 -0
- package/dist/cli/gauntlet-wave3-bnkjk2v2.js +5 -0
- package/dist/cli/gauntlet-wave4-acs9s60q.js +14 -0
- package/dist/cli/hashline-ewg5hbe3.js +2 -0
- package/dist/cli/http-n0kehsk8.js +5 -0
- package/dist/cli/index-z5qt1s76.js +2 -0
- package/dist/cli/install-80mp63kx.js +2 -0
- package/dist/cli/loop-12twjcat.js +2 -0
- package/dist/cli/main-01pv9206.js +4 -0
- package/dist/cli/main-0jys2ccn.js +3 -0
- package/dist/cli/main-1ztz6fkj.js +10 -0
- package/dist/cli/main-23q7cmww.js +9 -0
- package/dist/cli/main-2rzbexn2.js +3 -0
- package/dist/cli/main-2wyax8k9.js +9 -0
- package/dist/cli/main-2yeveeve.js +6 -0
- package/dist/cli/main-2z3dek0b.js +3 -0
- package/dist/cli/main-2zgsknth.js +3 -0
- package/dist/cli/main-45ejth3a.js +4 -0
- package/dist/cli/main-45rn3trk.js +22 -0
- package/dist/cli/main-4p4e2w7x.js +4 -0
- package/dist/cli/main-4y0tnfpa.js +16 -0
- package/dist/cli/main-5py0rkmc.js +4 -0
- package/dist/cli/main-6dtqmbt6.js +7 -0
- package/dist/cli/main-6h9x282m.js +4 -0
- package/dist/cli/main-6vjeds42.js +3 -0
- package/dist/cli/main-78gq4bt9.js +6 -0
- package/dist/cli/main-7jd5vh3x.js +4 -0
- package/dist/cli/main-7kt6r53y.js +4 -0
- package/dist/cli/main-8c1tbazx.js +58 -0
- package/dist/cli/main-9a9rnh47.js +19 -0
- package/dist/cli/main-9ht36z12.js +3 -0
- package/dist/cli/main-a2yfvcy9.js +7 -0
- package/dist/cli/main-a3f51n0x.js +5 -0
- package/dist/cli/main-b8zq261k.js +3 -0
- package/dist/cli/main-bxtvnf6d.js +13 -0
- package/dist/cli/main-edxc3yzt.js +4 -0
- package/dist/cli/main-evgz4mp5.js +21 -0
- package/dist/cli/main-f33fc5je.js +9 -0
- package/dist/cli/main-fvnpq46y.js +12 -0
- package/dist/cli/main-gbbty4d4.js +3 -0
- package/dist/cli/main-gth53dnt.js +25 -0
- package/dist/cli/main-hqbz10aw.js +9 -0
- package/dist/cli/main-hrrvcfan.js +38 -0
- package/dist/cli/main-hzwtsb2m.js +5 -0
- package/dist/cli/main-j7ttv0sd.js +34 -0
- package/dist/cli/main-jak598k9.js +5 -0
- package/dist/cli/main-kba6zeyd.js +6 -0
- package/dist/cli/main-kwwsz6rq.js +3 -0
- package/dist/cli/main-m8vm17zq.js +3 -0
- package/dist/cli/main-mg4f96e1.js +3 -0
- package/dist/cli/main-mg9b20ac.js +18 -0
- package/dist/cli/main-mgb9ccnx.js +3 -0
- package/dist/cli/main-mjt2p7aj.js +3 -0
- package/dist/cli/main-n6qrdbmy.js +3 -0
- package/dist/cli/main-na7wse0x.js +5 -0
- package/dist/cli/main-nqveez48.js +4 -0
- package/dist/cli/main-ntqef02r.js +10 -0
- package/dist/cli/main-nvc3yjay.js +136 -0
- package/dist/cli/main-p0cfn6nr.js +16 -0
- package/dist/cli/main-qj2djy17.js +19 -0
- package/dist/cli/main-qsevpgsv.js +3 -0
- package/dist/cli/main-qvarybsp.js +3 -0
- package/dist/cli/main-rebtt91r.js +5 -0
- package/dist/cli/main-rpg7h8mb.js +3 -0
- package/dist/cli/main-rsy72qmw.js +15 -0
- package/dist/cli/main-rvetps99.js +18 -0
- package/dist/cli/main-s4bb0jav.js +3 -0
- package/dist/cli/main-s9v8k74e.js +3 -0
- package/dist/cli/main-tjvwmscs.js +3 -0
- package/dist/cli/main-tkgarpjj.js +4 -0
- package/dist/cli/main-v8y60bb2.js +3 -0
- package/dist/cli/main-vhrrq337.js +3 -0
- package/dist/cli/main-vp2dfb7s.js +4 -0
- package/dist/cli/main-vqbr22sz.js +8 -0
- package/dist/cli/main-vxnwe5xx.js +18 -0
- package/dist/cli/main-wgph00xf.js +5 -0
- package/dist/cli/main-wk2csfnj.js +5 -0
- package/dist/cli/main-wm997zjx.js +3 -0
- package/dist/cli/main-wpkyraxh.js +3 -0
- package/dist/cli/main-wqt32p5x.js +4 -0
- package/dist/cli/main-x9ct6y1a.js +3 -0
- package/dist/cli/main-xfekqh9m.js +7 -0
- package/dist/cli/main-xt9zc3n6.js +7 -0
- package/dist/cli/main-xx2z3zh5.js +4 -0
- package/dist/cli/main-y5c82rxr.js +3 -0
- package/dist/cli/main-yrjt2sqt.js +14 -0
- package/dist/cli/main-ys6zj3yr.js +3 -0
- package/dist/cli/main-ywbxshqc.js +8 -0
- package/dist/cli/main-z13755t8.js +25 -0
- package/dist/cli/main-zc7pyrbj.js +4 -0
- package/dist/cli/main.js +279 -0
- package/dist/cli/market-cmd-bm5xvn9f.js +5 -0
- package/dist/cli/mcp-login-bthtfpt7.js +2 -0
- package/dist/cli/mcp-market-cmd-mbeshfyd.js +2 -0
- package/dist/cli/notify-54v5z9dz.js +2 -0
- package/dist/cli/oauth-g5gme95c.js +2 -0
- package/dist/cli/output-satndjap.js +16 -0
- package/dist/cli/profiles-sfhpbq3m.js +2 -0
- package/dist/cli/provider-config-hv3xtdt4.js +2 -0
- package/dist/cli/provider-kwzq6g84.js +2 -0
- package/dist/cli/registry-fh0hdnyn.js +2 -0
- package/dist/cli/registry-y1y8e94r.js +2 -0
- package/dist/cli/repl-t4z03mqq.js +11 -0
- package/dist/cli/resume-fqt4chg8.js +2 -0
- package/dist/cli/run-flags-rysbag9t.js +2 -0
- package/dist/cli/runtime-j19fjbsa.js +2 -0
- package/dist/cli/sandbox-config-g4qxd7y5.js +2 -0
- package/dist/cli/server-r0b6bksk.js +5 -0
- package/dist/cli/session-arg-txmn5g4x.js +2 -0
- package/dist/cli/session-ed250d9j.js +2 -0
- package/dist/cli/sessions-cmd-adw7svfn.js +7 -0
- package/dist/cli/settings-y9rzcqx8.js +2 -0
- package/dist/cli/setup-jmbr11j0.js +2 -0
- package/dist/cli/sextant-smoke-tcth0vea.js +5 -0
- package/dist/cli/skills-cmd-zbdy99v6.js +2 -0
- package/dist/cli/smoke-1bg937kx.js +8 -0
- package/dist/cli/start-chat-p01cdks3.js +12 -0
- package/dist/cli/stream-4wmyaypz.js +2 -0
- package/dist/cli/task-eg4s093s.js +2 -0
- package/dist/cli/tasks-12v9rr9k.js +2 -0
- package/dist/cli/thinking-a5ngvqyh.js +2 -0
- package/dist/cli/todo-1wxpcecx.js +2 -0
- package/dist/cli/tools-2ftsya7w.js +2 -0
- package/dist/cli/tools-x1tj4fxm.js +2 -0
- package/dist/cli/trust-cmd-hccxehzb.js +2 -0
- package/dist/cli/update-check-ygt3vd7m.js +2 -0
- package/dist/cli/update-cmd-v23qhr8c.js +2 -0
- package/dist/cli/voice-g1gtck92.js +2 -0
- package/dist/cli/webfetch-0nnrjgb5.js +2 -0
- package/dist/cli/websearch-f0vr2p7d.js +2 -0
- package/dist/cli/workspace-9rq1w4ta.js +2 -0
- package/dist/lib/index.js +62 -0
- package/dist/lib/models-index.json +1 -0
- package/dist/lib/plugins.js +6 -0
- package/dist/lib/providers.js +17 -0
- package/dist/lib/public-api.js +20 -0
- package/dist/rovecode.exe +4 -0
- package/package.json +38 -11
- package/bin/rovecode.ts +0 -21
- package/src/acp/server.ts +0 -374
- package/src/cli/auth-login.ts +0 -122
- package/src/cli/connect.ts +0 -244
- package/src/cli/context-cmd.ts +0 -199
- package/src/cli/dispatch.ts +0 -82
- package/src/cli/doctor.ts +0 -362
- package/src/cli/export.ts +0 -276
- package/src/cli/help.ts +0 -293
- package/src/cli/is-tui-invocation.ts +0 -8
- package/src/cli/main.ts +0 -583
- package/src/cli/market-cmd.ts +0 -658
- package/src/cli/mcp-login.ts +0 -141
- package/src/cli/mcp-market-cmd.ts +0 -302
- package/src/cli/output.ts +0 -382
- package/src/cli/repl.ts +0 -250
- package/src/cli/repomap-root.ts +0 -14
- package/src/cli/resume.ts +0 -57
- package/src/cli/run-flags.ts +0 -43
- package/src/cli/run-limits.ts +0 -78
- package/src/cli/runtime.ts +0 -931
- package/src/cli/session-arg.ts +0 -30
- package/src/cli/sessions-cmd.ts +0 -145
- package/src/cli/setup.ts +0 -153
- package/src/cli/skills-cmd.ts +0 -194
- package/src/cli/start-chat.ts +0 -65
- package/src/cli/trust-cmd.ts +0 -52
- package/src/coding/bash.ts +0 -148
- package/src/coding/checkpoints.ts +0 -327
- package/src/coding/diff.ts +0 -138
- package/src/coding/files.ts +0 -341
- package/src/coding/hashline.ts +0 -274
- package/src/coding/lsp-gate.ts +0 -254
- package/src/coding/lsp-servers.ts +0 -147
- package/src/coding/lsp.ts +0 -283
- package/src/coding/repomap-cache.ts +0 -99
- package/src/coding/repomap-files.ts +0 -192
- package/src/coding/repomap.ts +0 -481
- package/src/core/agents.ts +0 -255
- package/src/core/compaction.ts +0 -259
- package/src/core/config.ts +0 -289
- package/src/core/context-report.ts +0 -228
- package/src/core/context.ts +0 -60
- package/src/core/count-remote.ts +0 -107
- package/src/core/execpolicy-rules.ts +0 -196
- package/src/core/execpolicy.ts +0 -385
- package/src/core/executor.ts +0 -454
- package/src/core/guardrails.ts +0 -400
- package/src/core/hooks.ts +0 -411
- package/src/core/images.ts +0 -230
- package/src/core/intro.ts +0 -266
- package/src/core/loop.ts +0 -567
- package/src/core/modes.ts +0 -372
- package/src/core/orchestrator.ts +0 -245
- package/src/core/proc-group.ts +0 -48
- package/src/core/project-trust.ts +0 -98
- package/src/core/reflection.ts +0 -165
- package/src/core/sandbox-config.ts +0 -186
- package/src/core/session-id.ts +0 -24
- package/src/core/session-images.ts +0 -73
- package/src/core/session-ops.ts +0 -183
- package/src/core/session-text.ts +0 -29
- package/src/core/session.ts +0 -469
- package/src/core/settings.ts +0 -170
- package/src/core/tasks.ts +0 -646
- package/src/core/token-scale.ts +0 -108
- package/src/core/tools.ts +0 -309
- package/src/core/trust.ts +0 -104
- package/src/core/types.ts +0 -330
- package/src/core/update-check.ts +0 -171
- package/src/core/usage.ts +0 -204
- package/src/core/validate.ts +0 -121
- package/src/core/verify-gate.ts +0 -159
- package/src/core/verify.ts +0 -236
- package/src/core/voice.ts +0 -158
- package/src/core/win-job.ts +0 -183
- package/src/core/workspace.ts +0 -184
- package/src/design/audit.ts +0 -797
- package/src/design/direction.ts +0 -190
- package/src/design/rules.ts +0 -157
- package/src/eval/bench.ts +0 -150
- package/src/eval/gauntlet-runner.ts +0 -215
- package/src/eval/gauntlet-support.ts +0 -84
- package/src/eval/gauntlet-wave3.ts +0 -269
- package/src/eval/gauntlet-wave4.ts +0 -217
- package/src/eval/gauntlet.ts +0 -253
- package/src/index.ts +0 -17
- package/src/lanes/agy.ts +0 -95
- package/src/lanes/approval.ts +0 -24
- package/src/lanes/claude.ts +0 -129
- package/src/lanes/codex.ts +0 -127
- package/src/lanes/events.ts +0 -130
- package/src/lanes/job.ts +0 -142
- package/src/lanes/opencode.ts +0 -122
- package/src/lanes/process.ts +0 -184
- package/src/lanes/progress.ts +0 -183
- package/src/lanes/registry.ts +0 -178
- package/src/lanes/runner.ts +0 -124
- package/src/lanes/types.ts +0 -112
- package/src/market/catalogs/mcp-docs.json +0 -111
- package/src/market/catalogs/plugins.json +0 -111
- package/src/market/catalogs/skills.json +0 -478
- package/src/market/clone.ts +0 -72
- package/src/market/context-cost.ts +0 -121
- package/src/market/digest.ts +0 -106
- package/src/market/index.ts +0 -22
- package/src/market/install.ts +0 -578
- package/src/market/manifest.ts +0 -187
- package/src/market/prereq.ts +0 -145
- package/src/market/registry.ts +0 -363
- package/src/market/resolve.ts +0 -111
- package/src/market/types.ts +0 -236
- package/src/market/validate.ts +0 -227
- package/src/mcp/client.ts +0 -449
- package/src/mcp/config.ts +0 -252
- package/src/mcp/local-package.ts +0 -211
- package/src/mcp/market-catalog.ts +0 -84
- package/src/mcp/market-install.ts +0 -289
- package/src/mcp/market.ts +0 -362
- package/src/mcp/oauth.ts +0 -251
- package/src/mcp/prompts-resources.ts +0 -249
- package/src/mcp/shared.ts +0 -149
- package/src/mcp/status.ts +0 -67
- package/src/mcp/tools.ts +0 -275
- package/src/mcp/transport.ts +0 -122
- package/src/mcp/trust.ts +0 -25
- package/src/memory/blocks.ts +0 -278
- package/src/memory/recall.ts +0 -355
- package/src/memory/scope.ts +0 -182
- package/src/memory/store.ts +0 -105
- package/src/memory/tools.ts +0 -99
- package/src/plugins/cli.ts +0 -119
- package/src/plugins/discover.ts +0 -108
- package/src/plugins/index.ts +0 -50
- package/src/plugins/install.ts +0 -184
- package/src/plugins/load.ts +0 -124
- package/src/plugins/manifest.ts +0 -92
- package/src/plugins/state.ts +0 -83
- package/src/providers/auth.ts +0 -408
- package/src/providers/cache.ts +0 -223
- package/src/providers/catalog-local.ts +0 -160
- package/src/providers/catalog.ts +0 -421
- package/src/providers/middleware-context.ts +0 -86
- package/src/providers/middleware.ts +0 -373
- package/src/providers/model-list.ts +0 -23
- package/src/providers/oauth/common.ts +0 -105
- package/src/providers/oauth/device-code.ts +0 -107
- package/src/providers/oauth/github-copilot.ts +0 -146
- package/src/providers/oauth/loopback.ts +0 -158
- package/src/providers/oauth/openai.ts +0 -163
- package/src/providers/oauth/openrouter.ts +0 -89
- package/src/providers/oauth/pkce.ts +0 -45
- package/src/providers/oauth/registry.ts +0 -39
- package/src/providers/oauth/seam.ts +0 -89
- package/src/providers/profile-glm53.ts +0 -111
- package/src/providers/profile-sonnet5-persona.ts +0 -65
- package/src/providers/profile-sonnet5-voice.ts +0 -23
- package/src/providers/profiles.ts +0 -156
- package/src/providers/provider-config.ts +0 -311
- package/src/providers/registry.ts +0 -333
- package/src/providers/responses.ts +0 -209
- package/src/providers/retry.ts +0 -234
- package/src/providers/router.ts +0 -294
- package/src/providers/sse.ts +0 -26
- package/src/providers/stream-errors.ts +0 -117
- package/src/providers/stream.ts +0 -566
- package/src/providers/thinking.ts +0 -189
- package/src/providers/wire-messages.ts +0 -129
- package/src/providers/wire-responses.ts +0 -79
- package/src/providers/wire-select.ts +0 -53
- package/src/server/http.ts +0 -291
- package/src/server/openapi.ts +0 -246
- package/src/sextant/card-hits.ts +0 -102
- package/src/sextant/card-keys.ts +0 -55
- package/src/sextant/context-source.ts +0 -157
- package/src/sextant/crew-cards.ts +0 -350
- package/src/sextant/draw-agents.ts +0 -273
- package/src/sextant/draw-code.ts +0 -388
- package/src/sextant/draw-context.ts +0 -222
- package/src/sextant/draw-frame.ts +0 -164
- package/src/sextant/draw-market.ts +0 -573
- package/src/sextant/draw-messages.ts +0 -386
- package/src/sextant/draw-pet.ts +0 -230
- package/src/sextant/draw-plan.ts +0 -187
- package/src/sextant/draw-tabs.ts +0 -85
- package/src/sextant/draw-util.ts +0 -65
- package/src/sextant/draw-wizard.ts +0 -378
- package/src/sextant/engine.ts +0 -230
- package/src/sextant/frame-hits.ts +0 -25
- package/src/sextant/frame.ts +0 -101
- package/src/sextant/git-status.ts +0 -197
- package/src/sextant/grid.ts +0 -59
- package/src/sextant/input.ts +0 -119
- package/src/sextant/keys.ts +0 -521
- package/src/sextant/layout.ts +0 -86
- package/src/sextant/local-commands.ts +0 -169
- package/src/sextant/market-source.ts +0 -287
- package/src/sextant/mentions.ts +0 -200
- package/src/sextant/message-hits.ts +0 -26
- package/src/sextant/model.ts +0 -387
- package/src/sextant/overlays.ts +0 -456
- package/src/sextant/panel-hits.ts +0 -38
- package/src/sextant/pet.ts +0 -399
- package/src/sextant/screen.ts +0 -324
- package/src/sextant/scroll-hits.ts +0 -66
- package/src/sextant/scrollbar.ts +0 -82
- package/src/sextant/sextant-bridge.ts +0 -174
- package/src/sextant/sextant-cards.ts +0 -142
- package/src/sextant/sextant-diff-base.ts +0 -63
- package/src/sextant/sextant-files.ts +0 -154
- package/src/sextant/sextant-frame-loop.ts +0 -335
- package/src/sextant/sextant-renderer.ts +0 -574
- package/src/sextant/sextant-repo.ts +0 -140
- package/src/sextant/theme.ts +0 -66
- package/src/sextant/tool-rows.ts +0 -189
- package/src/sextant/types.ts +0 -493
- package/src/skills/index.ts +0 -387
- package/src/skills/pack.ts +0 -220
- package/src/skills/spec.ts +0 -162
- package/src/skills/tools.ts +0 -69
- package/src/skills/versioned.ts +0 -227
- package/src/telemetry/otel-export.ts +0 -122
- package/src/telemetry/otel-lanes.ts +0 -89
- package/src/telemetry/otel-logs.ts +0 -131
- package/src/telemetry/otel-metrics.ts +0 -136
- package/src/telemetry/otel.ts +0 -397
- package/src/telemetry/otlp.ts +0 -76
- package/src/tools/ask-user.ts +0 -156
- package/src/tools/bash-bg.ts +0 -94
- package/src/tools/bash-jobs.ts +0 -237
- package/src/tools/design.ts +0 -151
- package/src/tools/evalcell.ts +0 -338
- package/src/tools/html-text.ts +0 -139
- package/src/tools/provider.ts +0 -149
- package/src/tools/task.ts +0 -250
- package/src/tools/todo.ts +0 -320
- package/src/tools/webfetch.ts +0 -332
- package/src/tools/websearch.ts +0 -359
- package/src/tui/agents-cmd.ts +0 -41
- package/src/tui/app.ts +0 -749
- package/src/tui/attach.ts +0 -127
- package/src/tui/boot-notes.ts +0 -41
- package/src/tui/builtin-prompts.ts +0 -59
- package/src/tui/checkpoints-cmd.ts +0 -70
- package/src/tui/clipboard-image.ts +0 -81
- package/src/tui/clipboard.ts +0 -78
- package/src/tui/commands.ts +0 -283
- package/src/tui/config-view.ts +0 -53
- package/src/tui/context-cmds.ts +0 -282
- package/src/tui/cost.ts +0 -108
- package/src/tui/crash-guard.ts +0 -173
- package/src/tui/focus-terminal.ts +0 -34
- package/src/tui/git-cmds.ts +0 -273
- package/src/tui/git-plain.ts +0 -58
- package/src/tui/info-cmd.ts +0 -150
- package/src/tui/input-plain.ts +0 -76
- package/src/tui/mcp-cmd.ts +0 -128
- package/src/tui/memory-note.ts +0 -77
- package/src/tui/modes-cmd.ts +0 -45
- package/src/tui/notify-seq.ts +0 -100
- package/src/tui/notify.ts +0 -318
- package/src/tui/overlays.ts +0 -97
- package/src/tui/pi-renderer.ts +0 -428
- package/src/tui/providers-cmd.ts +0 -377
- package/src/tui/reasoning-view.ts +0 -56
- package/src/tui/renderer.ts +0 -128
- package/src/tui/replay-marker.ts +0 -29
- package/src/tui/session-cmd.ts +0 -148
- package/src/tui/session-manage.ts +0 -95
- package/src/tui/sextant-attach.ts +0 -102
- package/src/tui/sextant-io.ts +0 -202
- package/src/tui/sextant-smoke.ts +0 -110
- package/src/tui/shell-cmd.ts +0 -158
- package/src/tui/smoke.ts +0 -72
- package/src/tui/staged-terminal.ts +0 -50
- package/src/tui/startup.ts +0 -12
- package/src/tui/theme.ts +0 -59
- package/src/tui/todo-label.ts +0 -7
- package/src/tui/trust-card.ts +0 -107
- package/src/tui/tui-commands.ts +0 -87
- package/tsconfig.json +0 -30
- package/vendor/pi-tui/LICENSE +0 -21
- package/vendor/pi-tui/PATCHES.md +0 -12
- package/vendor/pi-tui/PROVENANCE.md +0 -12
- package/vendor/pi-tui/README.upstream.md +0 -854
- package/vendor/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
- package/vendor/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
- package/vendor/pi-tui/src/alt-screen-search.ts +0 -158
- package/vendor/pi-tui/src/autocomplete.ts +0 -827
- package/vendor/pi-tui/src/components/alt-screen-flash.ts +0 -52
- package/vendor/pi-tui/src/components/box.ts +0 -138
- package/vendor/pi-tui/src/components/cancellable-loader.ts +0 -41
- package/vendor/pi-tui/src/components/editor.ts +0 -2364
- package/vendor/pi-tui/src/components/h-stack.ts +0 -45
- package/vendor/pi-tui/src/components/image.ts +0 -128
- package/vendor/pi-tui/src/components/input.ts +0 -448
- package/vendor/pi-tui/src/components/loader.ts +0 -93
- package/vendor/pi-tui/src/components/markdown.ts +0 -1016
- package/vendor/pi-tui/src/components/scroll-view.ts +0 -217
- package/vendor/pi-tui/src/components/select-list.ts +0 -230
- package/vendor/pi-tui/src/components/settings-list.ts +0 -277
- package/vendor/pi-tui/src/components/spacer.ts +0 -29
- package/vendor/pi-tui/src/components/stack.ts +0 -155
- package/vendor/pi-tui/src/components/text.ts +0 -108
- package/vendor/pi-tui/src/components/truncated-text.ts +0 -66
- package/vendor/pi-tui/src/components/v-stack.ts +0 -34
- package/vendor/pi-tui/src/editor-component.ts +0 -75
- package/vendor/pi-tui/src/fuzzy.ts +0 -138
- package/vendor/pi-tui/src/index.ts +0 -149
- package/vendor/pi-tui/src/keybindings.ts +0 -321
- package/vendor/pi-tui/src/keys.ts +0 -1402
- package/vendor/pi-tui/src/kill-ring.ts +0 -47
- package/vendor/pi-tui/src/latex.ts +0 -1381
- package/vendor/pi-tui/src/layout-node.ts +0 -52
- package/vendor/pi-tui/src/layout.ts +0 -411
- package/vendor/pi-tui/src/native-modifiers.ts +0 -60
- package/vendor/pi-tui/src/native-module-path.ts +0 -32
- package/vendor/pi-tui/src/stdin-buffer.ts +0 -445
- package/vendor/pi-tui/src/terminal-colors.ts +0 -74
- package/vendor/pi-tui/src/terminal-image.ts +0 -701
- package/vendor/pi-tui/src/terminal.ts +0 -554
- package/vendor/pi-tui/src/tui-alt-screen.ts +0 -1379
- package/vendor/pi-tui/src/tui-main-screen.ts +0 -655
- package/vendor/pi-tui/src/tui.ts +0 -1264
- package/vendor/pi-tui/src/undo-stack.ts +0 -29
- package/vendor/pi-tui/src/utils.ts +0 -1327
- package/vendor/pi-tui/src/word-navigation.ts +0 -118
- package/vendor/pi-tui/test/test-themes.ts +0 -39
- package/vendor/pi-tui/test/virtual-terminal.ts +0 -219
- /package/{src/providers → dist/cli}/models-index.json +0 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Ra as X3,Sa as G3,Ta as j3,Ua as p6}from"./main-rsy72qmw.js";import{dg as R$,lg as K3}from"./main-rvetps99.js";import{Jj as Y3,Wj as x6}from"./main-ywbxshqc.js";import{Dl as z3,ul as P$}from"./main-a3f51n0x.js";import{vn as w$,wn as T}from"./main-qsevpgsv.js";import{existsSync as N3,readFileSync as _3}from"fs";import{relative as H3}from"path";import{structuredPatch as B3}from"diff";function F3($){return`\u2026 +${$} more line${$===1?"":"s"}`}function M3($,J){return $.length>J?[...$.slice(0,J),F3($.length-J)]:$}function E3($,J){return P$($,J)}function D3($){let J=Math.min($.length,A3);for(let Z=0;Z<J;Z++)if($[Z]===0)return!0;return!1}function S3($){switch($.kind){case"tag-mismatch":return`stale read \u2014 file TAG is now ${$.actual}, the edit expects ${$.expected}`;case"hash-mismatch":return`stale anchor \u2014 line ${$.line} hash is ${$.actual}, the edit expects ${$.expected}; ${$.nearest}`;case"out-of-range":return`line ${$.line} out of range (file has ${$.lineCount} lines)`}}function P3($,J){if(!Array.isArray($.edits))return null;let Z=[];for(let Y of $.edits){let X=typeof Y==="object"&&Y!==null?Y:{};if(typeof X.tag!=="string"||typeof X.anchorHash!=="string"||typeof X.anchorLine!=="number")return null;if(!Array.isArray(X.newLines)||!X.newLines.every((G)=>typeof G==="string"))return null;Z.push({path:J,tag:X.tag,anchorLine:X.anchorLine,anchorHash:X.anchorHash,newLines:X.newLines})}return Z}function R3($,J){let Z=$.replace(/\r\n/g,`
|
|
3
|
+
`).split(`
|
|
4
|
+
`),Y=Z[Z.length-1]==="";if(Y)Z.pop();let X=Z.map((G)=>J+G);if(!Y&&X.length>0)X.push("\");return X}function T3($,J,Z,Y){let X=Y.maxLines??q3;if(J===Z)return{text:"",truncated:!1,kind:"unchanged"};let G=[],j="modify";if(J===null){j="create";let Q=R3(Z,"+");if(Q.length>0)G.push(`@@ -0,0 +1,${Q.filter((z)=>z[0]==="+").length} @@`,...Q)}else{if(J.length+Z.length>V3)return $0("file too large to preview");let Q=B3($,$,J,Z,void 0,void 0,{context:Y.context??O3,stripTrailingCr:!0,maxEditLength:D$,timeout:S$});if(Q===void 0)return $0(`change too large to preview (over ${D$} edited lines or ${S$}ms)`);for(let z of Q.hunks)G.push(`@@ -${z.oldStart},${z.oldLines} +${z.newStart},${z.newLines} @@`,...z.lines);if(G.length===0)return{text:"no content changes (line endings only)",truncated:!1,kind:"unchanged"}}let U=[`--- ${J===null?"/dev/null":`a/${$}`}`,`+++ b/${$}`,...G];return{text:M3(U,X).join(`
|
|
5
|
+
`),truncated:U.length>X,kind:j}}function a6($,J,Z,Y={}){try{let X=typeof J==="object"&&J!==null?J:{};if(typeof X.path!=="string"||X.path==="")return $0("missing path");let G=E3(Z,X.path),j=H3(Z,G).replace(/\\/g,"/")||X.path,U=null;if(N3(G)){let z=_3(G);if(D3(z))return $0("binary file");U=z.toString("utf8")}let Q;if($==="write"){if(typeof X.content!=="string")return $0("missing content");Q=X.content}else{if(U===null)return $0(`file not found: ${G}`);let z=P3(X,G);if(z===null)return $0("malformed edits");let K=R$(U,z,G);if(!K.ok)return $0(S3(K.failure));Q=K.content}if(Q.includes("\x00"))return $0("binary content");return T3(j,U,Q,Y)}catch(X){return $0(X instanceof Error?X.message:String(X))}}var q3=40,O3=3,A3=8000,D$=2000,S$=1000,V3=4000000,$0=($)=>({text:`diff unavailable: ${$}`,truncated:!1,kind:"unavailable"});var I3=T(()=>{z3();K3()});function k0($){X0=$}function P1($){return W3.get($)??$}function s0($,J){if((J&~C0&D.shift)!==0&&$>=65&&$<=90)return $+32;return $}function n0($){if($.includes("\x1B[200~"))return!1;if($.includes(":3u")||$.includes(":3~")||$.includes(":3A")||$.includes(":3B")||$.includes(":3C")||$.includes(":3D")||$.includes(":3H")||$.includes(":3F"))return!0;return!1}function d0($){if(!$)return"press";let J=parseInt($,10);if(J===2)return"repeat";if(J===3)return"release";return"press"}function k3($){let J=$.match(/^\x1b\[(\d+)(?::(\d*))?(?::(\d+))?(?:;(\d+))?(?::(\d+))?u$/);if(J){let G=parseInt(J[1],10),j=J[2]&&J[2].length>0?parseInt(J[2],10):void 0,U=J[3]?parseInt(J[3],10):void 0,Q=J[4]?parseInt(J[4],10):1,z=d0(J[5]);return l0=z,{codepoint:G,shiftedKey:j,baseLayoutKey:U,modifier:Q-1,eventType:z}}let Z=$.match(/^\x1b\[1;(\d+)(?::(\d+))?([ABCD])$/);if(Z){let G=parseInt(Z[1],10),j=d0(Z[2]),U={A:-1,B:-2,C:-3,D:-4};return l0=j,{codepoint:U[Z[3]],modifier:G-1,eventType:j}}let Y=$.match(/^\x1b\[(\d+)(?:;(\d+))?(?::(\d+))?~$/);if(Y){let G=parseInt(Y[1],10),j=Y[2]?parseInt(Y[2],10):1,U=d0(Y[3]),z={2:y.insert,3:y.delete,5:y.pageUp,6:y.pageDown,7:y.home,8:y.end}[G];if(z!==void 0)return l0=U,{codepoint:z,modifier:j-1,eventType:U}}let X=$.match(/^\x1b\[1;(\d+)(?::(\d+))?([HF])$/);if(X){let G=parseInt(X[1],10),j=d0(X[2]),U=X[3]==="H"?y.home:y.end;return l0=j,{codepoint:U,modifier:G-1,eventType:j}}return null}function R($,J,Z){let Y=k3($);if(!Y)return!1;let X=Y.modifier&~C0,G=Z&~C0;if(X!==G)return!1;let j=s0(P1(Y.codepoint),Y.modifier),U=s0(P1(J),Z);if(j===U)return!0;if(Y.baseLayoutKey!==void 0&&Y.baseLayoutKey===J){let Q=j,z=Q>=97&&Q<=122,K=S1.has(String.fromCharCode(Q));if(!z&&!K)return!0}return!1}function R1($){let J=$.match(/^\x1b\[27;(\d+);(\d+)~$/);if(!J)return null;let Z=parseInt(J[1],10);return{codepoint:parseInt(J[2],10),modifier:Z-1}}function n($,J,Z){let Y=R1($);if(!Y)return!1;return Y.codepoint===J&&Y.modifier===Z}function v3(){return Boolean(process.env.WT_SESSION)&&!process.env.SSH_CONNECTION&&!process.env.SSH_CLIENT&&!process.env.SSH_TTY}function T$($,J){if($==="\x7F")return J===0;if($!=="\b")return!1;return v3()?J===D.ctrl:J===0}function b3($){let J=$.toLowerCase(),Z=J.charCodeAt(0);if(Z>=97&&Z<=122||J==="["||J==="\\"||J==="]"||J==="_")return String.fromCharCode(Z&31);if(J==="-")return String.fromCharCode(31);return null}function I$($){return $>="0"&&$<="9"}function o0($,J,Z){if(Z===0)return!1;let Y=R1($);if(!Y||Y.modifier!==Z)return!1;return s0(Y.codepoint,Y.modifier)===s0(J,Z)}function y3($){let J=$.toLowerCase().split("+"),Z=J[J.length-1];if(!Z)return null;return{key:Z,ctrl:J.includes("ctrl"),shift:J.includes("shift"),alt:J.includes("alt"),super:J.includes("super")}}function d($,J){let Z=y3(J);if(!Z)return!1;let{key:Y,ctrl:X,shift:G,alt:j,super:U}=Z,Q=0;if(G)Q|=D.shift;if(j)Q|=D.alt;if(X)Q|=D.ctrl;if(U)Q|=D.super;switch(Y){case"escape":case"esc":if(Q!==0)return!1;return $==="\x1B"||R($,v.escape,0)||n($,v.escape,0);case"space":if(!X0){if(Q===D.ctrl&&$==="\x00")return!0;if(Q===D.alt&&$==="\x1B ")return!0}if(Q===0)return $===" "||R($,v.space,0)||n($,v.space,0);return R($,v.space,Q)||n($,v.space,Q);case"tab":if(Q===D.shift)return $==="\x1B[Z"||R($,v.tab,D.shift)||n($,v.tab,D.shift);if(Q===0)return $==="\t"||R($,v.tab,0);return R($,v.tab,Q)||n($,v.tab,Q);case"enter":case"return":if(Q===D.shift){if(R($,v.enter,D.shift)||R($,v.kpEnter,D.shift))return!0;if(n($,v.enter,D.shift))return!0;if(X0)return $==="\x1B\r"||$===`
|
|
6
|
+
`;return!1}if(Q===D.alt){if(R($,v.enter,D.alt)||R($,v.kpEnter,D.alt))return!0;if(n($,v.enter,D.alt))return!0;if(!X0)return $==="\x1B\r";return!1}if(Q===0)return $==="\r"||!X0&&$===`
|
|
7
|
+
`||$==="\x1BOM"||R($,v.enter,0)||R($,v.kpEnter,0);return R($,v.enter,Q)||R($,v.kpEnter,Q)||n($,v.enter,Q);case"backspace":if(Q===D.alt){if($==="\x1B\x7F"||$==="\x1B\b")return!0;return R($,v.backspace,D.alt)||n($,v.backspace,D.alt)}if(Q===D.ctrl){if(T$($,D.ctrl))return!0;return R($,v.backspace,D.ctrl)||n($,v.backspace,D.ctrl)}if(Q===0)return T$($,0)||R($,v.backspace,0)||n($,v.backspace,0);return R($,v.backspace,Q)||n($,v.backspace,Q);case"insert":if(Q===0)return c($,r.insert)||R($,y.insert,0);if(l($,"insert",Q))return!0;return R($,y.insert,Q);case"delete":if(Q===0)return c($,r.delete)||R($,y.delete,0);if(l($,"delete",Q))return!0;return R($,y.delete,Q);case"clear":if(Q===0)return c($,r.clear);return l($,"clear",Q);case"home":if(Q===0)return c($,r.home)||R($,y.home,0);if(l($,"home",Q))return!0;return R($,y.home,Q);case"end":if(Q===0)return c($,r.end)||R($,y.end,0);if(l($,"end",Q))return!0;return R($,y.end,Q);case"pageup":if(Q===0)return c($,r.pageUp)||R($,y.pageUp,0);if(l($,"pageUp",Q))return!0;return R($,y.pageUp,Q);case"pagedown":if(Q===0)return c($,r.pageDown)||R($,y.pageDown,0);if(l($,"pageDown",Q))return!0;return R($,y.pageDown,Q);case"up":if(Q===D.alt)return $==="\x1Bp"||R($,p.up,D.alt);if(Q===0)return c($,r.up)||R($,p.up,0);if(l($,"up",Q))return!0;return R($,p.up,Q);case"down":if(Q===D.alt)return $==="\x1Bn"||R($,p.down,D.alt);if(Q===0)return c($,r.down)||R($,p.down,0);if(l($,"down",Q))return!0;return R($,p.down,Q);case"left":if(Q===D.alt)return $==="\x1B[1;3D"||!X0&&$==="\x1BB"||$==="\x1Bb"||R($,p.left,D.alt);if(Q===D.ctrl)return $==="\x1B[1;5D"||l($,"left",D.ctrl)||R($,p.left,D.ctrl);if(Q===0)return c($,r.left)||R($,p.left,0);if(l($,"left",Q))return!0;return R($,p.left,Q);case"right":if(Q===D.alt)return $==="\x1B[1;3C"||!X0&&$==="\x1BF"||$==="\x1Bf"||R($,p.right,D.alt);if(Q===D.ctrl)return $==="\x1B[1;5C"||l($,"right",D.ctrl)||R($,p.right,D.ctrl);if(Q===0)return c($,r.right)||R($,p.right,0);if(l($,"right",Q))return!0;return R($,p.right,Q);case"f1":case"f2":case"f3":case"f4":case"f5":case"f6":case"f7":case"f8":case"f9":case"f10":case"f11":case"f12":{if(Q!==0)return!1;return c($,r[Y])}}if(Y.length===1&&(Y>="a"&&Y<="z"||I$(Y)||S1.has(Y))){let z=Y.charCodeAt(0),K=b3(Y),N=Y>="a"&&Y<="z",_=I$(Y);if(Q===D.ctrl+D.alt&&!X0&&K){if($===`\x1B${K}`)return!0}if(Q===D.alt&&!X0&&(N||_||S1.has(Y))){if($===`\x1B${Y}`)return!0}if(Q===D.ctrl){if(K&&$===K)return!0;return R($,z,D.ctrl)||o0($,z,D.ctrl)}if(Q===D.shift+D.ctrl)return R($,z,D.shift+D.ctrl)||o0($,z,D.shift+D.ctrl);if(Q===D.shift){if(N&&$===Y.toUpperCase())return!0;return R($,z,D.shift)||o0($,z,D.shift)}if(Q!==0)return R($,z,Q)||o0($,z,Q);return $===Y||R($,z,0)}return!1}function a0($){let J=$.match(w3);if(!J)return;let Z=Number.parseInt(J[1]??"",10);if(!Number.isFinite(Z))return;let Y=J[2]&&J[2].length>0?Number.parseInt(J[2],10):void 0,X=J[4]?Number.parseInt(J[4],10):1,G=Number.isFinite(X)?X-1:0;if((G&~f3)!==0)return;if(G&(D.alt|D.ctrl))return;let j=Z;if(G&D.shift&&typeof Y==="number")j=Y;if(j=P1(j),!Number.isFinite(j)||j<32)return;try{return String.fromCodePoint(j)}catch{return}}function g3($){let J=R1($);if(!J)return;if((J.modifier&~C0&~D.shift)!==0)return;if(!Number.isFinite(J.codepoint)||J.codepoint<32)return;try{return String.fromCodePoint(J.codepoint)}catch{return}}function T1($){return a0($)??g3($)}var X0=!1,r0,S1,D,C0=192,v,p,y,W3,r,L3,C3,c=($,J)=>J.includes($),l=($,J,Z)=>{if(Z===D.shift)return c($,L3[J]);if(Z===D.ctrl)return c($,C3[J]);return!1},l0="press",w3,f3;var z0=T(()=>{r0={escape:"escape",esc:"esc",enter:"enter",return:"return",tab:"tab",space:"space",backspace:"backspace",delete:"delete",insert:"insert",clear:"clear",home:"home",end:"end",pageUp:"pageUp",pageDown:"pageDown",up:"up",down:"down",left:"left",right:"right",f1:"f1",f2:"f2",f3:"f3",f4:"f4",f5:"f5",f6:"f6",f7:"f7",f8:"f8",f9:"f9",f10:"f10",f11:"f11",f12:"f12",backtick:"`",hyphen:"-",equals:"=",leftbracket:"[",rightbracket:"]",backslash:"\\",semicolon:";",quote:"'",comma:",",period:".",slash:"/",exclamation:"!",at:"@",hash:"#",dollar:"$",percent:"%",caret:"^",ampersand:"&",asterisk:"*",leftparen:"(",rightparen:")",underscore:"_",plus:"+",pipe:"|",tilde:"~",leftbrace:"{",rightbrace:"}",colon:":",lessthan:"<",greaterthan:">",question:"?",ctrl:($)=>`ctrl+${$}`,shift:($)=>`shift+${$}`,alt:($)=>`alt+${$}`,super:($)=>`super+${$}`,ctrlShift:($)=>`ctrl+shift+${$}`,shiftCtrl:($)=>`shift+ctrl+${$}`,ctrlAlt:($)=>`ctrl+alt+${$}`,altCtrl:($)=>`alt+ctrl+${$}`,shiftAlt:($)=>`shift+alt+${$}`,altShift:($)=>`alt+shift+${$}`,ctrlSuper:($)=>`ctrl+super+${$}`,superCtrl:($)=>`super+ctrl+${$}`,shiftSuper:($)=>`shift+super+${$}`,superShift:($)=>`super+shift+${$}`,altSuper:($)=>`alt+super+${$}`,superAlt:($)=>`super+alt+${$}`,ctrlShiftAlt:($)=>`ctrl+shift+alt+${$}`,ctrlShiftSuper:($)=>`ctrl+shift+super+${$}`},S1=new Set(["`","-","=","[","]","\\",";","'",",",".","/","!","@","#","$","%","^","&","*","(",")","_","+","|","~","{","}",":","<",">","?"]),D={shift:1,alt:2,ctrl:4,super:8},v={escape:27,tab:9,enter:13,space:32,backspace:127,kpEnter:57414},p={up:-1,down:-2,right:-3,left:-4},y={delete:-10,insert:-11,pageUp:-12,pageDown:-13,home:-14,end:-15},W3=new Map([[57399,48],[57400,49],[57401,50],[57402,51],[57403,52],[57404,53],[57405,54],[57406,55],[57407,56],[57408,57],[57409,46],[57410,47],[57411,42],[57412,45],[57413,43],[57415,61],[57416,44],[57417,p.left],[57418,p.right],[57419,p.up],[57420,p.down],[57421,y.pageUp],[57422,y.pageDown],[57423,y.home],[57424,y.end],[57425,y.insert],[57426,y.delete]]);r={up:["\x1B[A","\x1BOA"],down:["\x1B[B","\x1BOB"],right:["\x1B[C","\x1BOC"],left:["\x1B[D","\x1BOD"],home:["\x1B[H","\x1BOH","\x1B[1~","\x1B[7~"],end:["\x1B[F","\x1BOF","\x1B[4~","\x1B[8~"],insert:["\x1B[2~"],delete:["\x1B[3~"],pageUp:["\x1B[5~","\x1B[[5~"],pageDown:["\x1B[6~","\x1B[[6~"],clear:["\x1B[E","\x1BOE"],f1:["\x1BOP","\x1B[11~","\x1B[[A"],f2:["\x1BOQ","\x1B[12~","\x1B[[B"],f3:["\x1BOR","\x1B[13~","\x1B[[C"],f4:["\x1BOS","\x1B[14~","\x1B[[D"],f5:["\x1B[15~","\x1B[[E"],f6:["\x1B[17~"],f7:["\x1B[18~"],f8:["\x1B[19~"],f9:["\x1B[20~"],f10:["\x1B[21~"],f11:["\x1B[23~"],f12:["\x1B[24~"]},L3={up:["\x1B[a"],down:["\x1B[b"],right:["\x1B[c"],left:["\x1B[d"],clear:["\x1B[e"],insert:["\x1B[2$"],delete:["\x1B[3$"],pageUp:["\x1B[5$"],pageDown:["\x1B[6$"],home:["\x1B[7$"],end:["\x1B[8$"]},C3={up:["\x1BOa"],down:["\x1BOb"],right:["\x1BOc"],left:["\x1BOd"],clear:["\x1BOe"],insert:["\x1B[2^"],delete:["\x1B[3^"],pageUp:["\x1B[5^"],pageDown:["\x1B[6^"],home:["\x1B[7^"],end:["\x1B[8^"]};w3=/^\x1b\[(\d+)(?::(\d*))?(?::(\d+))?(?:;(\d+))?(?::(\d+))?u$/,f3=D.shift|C0});import{createRequire as x3}from"module";import{dirname as I1,join as i0}from"path";import{fileURLToPath as p3}from"url";function t0($,J={}){let Z=I1(p3(J.moduleUrl??import.meta.url)),Y=[];try{let X=(J.resolvePackage??u3.resolve)(m3);Y.push(i0(I1(X),"..",$))}catch{}return Y.push(i0(Z,"..",$),i0(Z,$),i0(I1(J.execPath??process.execPath),$)),Array.from(new Set(Y))}var u3,m3="@earendil-works/pi-tui";var W1=T(()=>{u3=x3(import.meta.url)});import{createRequire as h3}from"module";import*as L1 from"path";function l3($){if(typeof $!=="object"||$===null)return!1;return typeof $.isModifierPressed==="function"}function d3(){if(e0!==void 0)return e0??void 0;e0=null;let $=process.arch;if($!=="x64"&&$!=="arm64")return;let J;if(process.platform==="darwin")J=L1.join("native","darwin","prebuilds",`darwin-${$}`,"darwin-modifiers.node");else if(process.platform==="win32")J=L1.join("native","win32","prebuilds",`win32-${$}`,"win32-console-mode.node");else return;for(let Z of t0(J))try{let Y=c3(Z);if(l3(Y))return e0=Y,Y}catch{}return}function W$($){let J=d3();if(!J)return!1;try{return J.isModifierPressed($)===!0}catch{return!1}}var c3,e0;var L$=T(()=>{W1();c3=h3(import.meta.url)});import{EventEmitter as o3}from"events";function n3($){if(!$.startsWith(i))return"not-escape";if($.length===1)return"incomplete";let J=$.slice(1);if(J.startsWith("[")){if(J.startsWith("[M"))return $.length>=6?"complete":"incomplete";return a3($)}if(J.startsWith("]"))return i3($);if(J.startsWith("P"))return t3($);if(J.startsWith("_"))return e3($);if(J.startsWith("O"))return J.length>=2?"complete":"incomplete";if(J.length===1)return"complete";return"complete"}function a3($){if(!$.startsWith(`${i}[`))return"complete";if($.length<3)return"incomplete";let J=$.slice(2),Z=J[J.length-1],Y=Z.charCodeAt(0);if(Y>=64&&Y<=126){if(J.startsWith("<")){if(/^<\d+;\d+;\d+[Mm]$/.test(J))return"complete";if(Z==="M"||Z==="m"){let G=J.slice(1,-1).split(";");if(G.length===3&&G.every((j)=>/^\d+$/.test(j)))return"complete"}return"incomplete"}return"complete"}return"incomplete"}function i3($){if(!$.startsWith(`${i}]`))return"complete";if($.endsWith(`${i}\\`)||$.endsWith("\x07"))return"complete";return"incomplete"}function t3($){if(!$.startsWith(`${i}P`))return"complete";if($.endsWith(`${i}\\`))return"complete";return"incomplete"}function e3($){if(!$.startsWith(`${i}_`))return"complete";if($.endsWith(`${i}\\`))return"complete";return"incomplete"}function $2($){let J=$.match(/^\x1b\[(\d+)(?::\d*)?(?::\d+)?u$/);if(!J)return;let Z=parseInt(J[1],10);return Z>=32?Z:void 0}function k$($){let J=[],Z=0;while(Z<$.length){let Y=$.slice(Z);if(Y.startsWith(i)){let X=1;while(X<=Y.length){let G=Y.slice(0,X),j=n3(G);if(j==="complete"){if(G==="\x1B\x1B"){let U=Y[X];if(U==="["||U==="]"||U==="O"||U==="P"||U==="_"){J.push(i),Z+=1;break}}J.push(G),Z+=X;break}else if(j==="incomplete")X++;else{J.push(G),Z+=X;break}}if(X>Y.length)return{sequences:J,remainder:Y}}else J.push(Y[0]),Z++}return{sequences:J,remainder:""}}var i="\x1B",s3=50,r3=10,C$="\x1B[200~",$1="\x1B[201~",J1;var C1=T(()=>{J1=class J1 extends o3{buffer="";timeout=null;timeoutMs;escapeTimeoutMs;pasteMode=!1;pasteBuffer="";pendingKittyPrintableCodepoint;constructor($={}){super();this.timeoutMs=$.timeout??s3,this.escapeTimeoutMs=$.escapeTimeout??r3}process($){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;let J;if(Buffer.isBuffer($))if($.length===1&&$[0]>127){let X=$[0]-128;J=`\x1B${String.fromCharCode(X)}`}else J=$.toString();else J=$;if(J.length===0&&this.buffer.length===0){this.emitDataSequence("");return}if(this.buffer+=J,this.pasteMode){this.pasteBuffer+=this.buffer,this.buffer="";let X=this.pasteBuffer.indexOf($1);if(X!==-1){let G=this.pasteBuffer.slice(0,X),j=this.pasteBuffer.slice(X+$1.length);if(this.pasteMode=!1,this.pasteBuffer="",this.pendingKittyPrintableCodepoint=void 0,this.emit("paste",G),j.length>0)this.process(j)}return}let Z=this.buffer.indexOf(C$);if(Z!==-1){if(Z>0){let G=this.buffer.slice(0,Z),j=k$(G);for(let U of j.sequences)this.emitDataSequence(U)}this.pendingKittyPrintableCodepoint=void 0,this.buffer=this.buffer.slice(Z+C$.length),this.pasteMode=!0,this.pasteBuffer=this.buffer,this.buffer="";let X=this.pasteBuffer.indexOf($1);if(X!==-1){let G=this.pasteBuffer.slice(0,X),j=this.pasteBuffer.slice(X+$1.length);if(this.pasteMode=!1,this.pasteBuffer="",this.pendingKittyPrintableCodepoint=void 0,this.emit("paste",G),j.length>0)this.process(j)}return}let Y=k$(this.buffer);this.buffer=Y.remainder;for(let X of Y.sequences)this.emitDataSequence(X);if(this.buffer.length>0){let X=this.buffer===i?this.escapeTimeoutMs:this.timeoutMs;this.timeout=setTimeout(()=>{let G=this.flush();for(let j of G)this.emitDataSequence(j)},X)}}emitDataSequence($){let J=$.length===1?$.codePointAt(0):void 0;if(J!==void 0&&J===this.pendingKittyPrintableCodepoint){this.pendingKittyPrintableCodepoint=void 0;return}this.pendingKittyPrintableCodepoint=$2($),this.emit("data",$)}flush(){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;if(this.buffer.length===0)return[];let $=[this.buffer];return this.buffer="",this.pendingKittyPrintableCodepoint=void 0,$}clear(){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;this.buffer="",this.pasteMode=!1,this.pasteBuffer="",this.pendingKittyPrintableCodepoint=void 0}getBuffer(){return this.buffer}destroy(){this.clear()}}});var N2={};w$(N2,{resolveEscapeTimeoutMs:()=>g$,parseKeyboardProtocolNegotiationSequence:()=>v1,normalizeNativeShiftEnterInput:()=>b1,normalizeAppleTerminalInput:()=>U2,isAppleTerminalSession:()=>f$,ProcessTerminal:()=>v0});import*as Z1 from"fs";import{createRequire as J2}from"module";import*as k1 from"path";function v1($){let J=$.match(/^\x1b\[\?(\d+)u$/);if(J)return{type:"kitty-flags",flags:Number.parseInt(J[1],10)};if(/^\x1b\[\?[\d;]*c$/.test($))return{type:"device-attributes"};return}function y$($){return $==="\x1B["||/^\x1b\[\?[\d;]*$/.test($)}function f$(){return process.platform==="darwin"&&process.env.TERM_PROGRAM==="Apple_Terminal"}function b1($,J,Z){if(J&&$==="\r"&&Z)return X2;return $}function U2($,J,Z){return b1($,J,Z)}function g$($=process.env){let J=Number($.PI_TUI_ESC_TIMEOUT);if(Number.isFinite(J)&&J>0)return J;if($.SSH_CONNECTION||$.SSH_TTY)return K2;return z2}class v0{wasRaw=!1;inputHandler;resizeHandler;_kittyProtocolActive=!1;_modifyOtherKeysActive=!1;keyboardProtocolPushed=!1;keyboardProtocolNegotiationBuffer="";keyboardProtocolBufferFlushTimer;stdinBuffer;stdinDataHandler;progressInterval;writeLogPath=(()=>{let $=process.env.PI_TUI_WRITE_LOG||"";if(!$)return"";try{if(Z1.statSync($).isDirectory()){let J=new Date,Z=`${J.getFullYear()}-${String(J.getMonth()+1).padStart(2,"0")}-${String(J.getDate()).padStart(2,"0")}_${String(J.getHours()).padStart(2,"0")}-${String(J.getMinutes()).padStart(2,"0")}-${String(J.getSeconds()).padStart(2,"0")}`;return k1.join($,`tui-${Z}-${process.pid}.log`)}}catch{}return $})();get kittyProtocolActive(){return this._kittyProtocolActive}get modifyOtherKeysActive(){return this._modifyOtherKeysActive}start($,J){if(this.inputHandler=$,this.resizeHandler=J,this.wasRaw=process.stdin.isRaw||!1,process.stdin.setRawMode)process.stdin.setRawMode(!0);if(process.stdin.setEncoding("utf8"),process.stdin.resume(),process.stdout.write("\x1B[?2004h"),process.stdout.on("resize",this.resizeHandler),process.platform!=="win32")process.kill(process.pid,"SIGWINCH");this.enableWindowsVTInput(),this.queryAndEnableKittyProtocol()}setupStdinBuffer(){this.stdinBuffer=new J1({escapeTimeout:g$()}),this.stdinBuffer.on("data",($)=>{let J=this.readKeyboardProtocolNegotiationSequence($);if(J==="pending"){this.scheduleKeyboardProtocolNegotiationBufferFlush();return}if(this.handleKeyboardProtocolNegotiationSequence(J))return;this.forwardInputSequence($)}),this.stdinBuffer.on("paste",($)=>{if(this.inputHandler)this.inputHandler(`\x1B[200~${$}\x1B[201~`)}),this.stdinDataHandler=($)=>{this.stdinBuffer.process($)}}queryAndEnableKittyProtocol(){this.setupStdinBuffer(),process.stdin.on("data",this.stdinDataHandler),this.keyboardProtocolPushed=!0,this.clearKeyboardProtocolNegotiationBuffer(),process.stdout.write(Q2)}handleKeyboardProtocolNegotiationSequence($){if(!$)return!1;if(this.clearKeyboardProtocolNegotiationBuffer(),$.type==="kitty-flags"){if($.flags!==0){if(this.disableModifyOtherKeys(),!this._kittyProtocolActive)this._kittyProtocolActive=!0,k0(!0)}else this.enableModifyOtherKeys();return!0}if(!this._kittyProtocolActive)this.enableModifyOtherKeys();return!0}readKeyboardProtocolNegotiationSequence($){if(this.keyboardProtocolNegotiationBuffer){let Z=this.keyboardProtocolNegotiationBuffer+$,Y=v1(Z);if(Y)return this.clearKeyboardProtocolNegotiationBuffer(),Y;if(y$(Z))return this.setKeyboardProtocolNegotiationBuffer(Z),"pending";this.flushKeyboardProtocolNegotiationBufferAsInput()}let J=v1($);if(J)return J;if(y$($))return this.setKeyboardProtocolNegotiationBuffer($),"pending";return}setKeyboardProtocolNegotiationBuffer($){this.clearKeyboardProtocolNegotiationBufferFlushTimer(),this.keyboardProtocolNegotiationBuffer=$}clearKeyboardProtocolNegotiationBuffer(){this.clearKeyboardProtocolNegotiationBufferFlushTimer(),this.keyboardProtocolNegotiationBuffer=""}flushKeyboardProtocolNegotiationBufferAsInput(){if(!this.keyboardProtocolNegotiationBuffer)return;let $=this.keyboardProtocolNegotiationBuffer;this.clearKeyboardProtocolNegotiationBuffer(),this.forwardInputSequence($)}scheduleKeyboardProtocolNegotiationBufferFlush(){if(!this.keyboardProtocolNegotiationBuffer||this.keyboardProtocolBufferFlushTimer)return;this.keyboardProtocolBufferFlushTimer=setTimeout(()=>{this.keyboardProtocolBufferFlushTimer=void 0,this.flushKeyboardProtocolNegotiationBufferAsInput()},j2)}clearKeyboardProtocolNegotiationBufferFlushTimer(){if(!this.keyboardProtocolBufferFlushTimer)return;clearTimeout(this.keyboardProtocolBufferFlushTimer),this.keyboardProtocolBufferFlushTimer=void 0}forwardInputSequence($){if(!this.inputHandler)return;let J=$==="\r"&&(f$()||process.platform==="win32"),Z=b1($,J,J&&W$("shift"));this.inputHandler(Z)}enableModifyOtherKeys(){if(this._kittyProtocolActive||this._modifyOtherKeysActive)return;process.stdout.write("\x1B[>4;2m"),this._modifyOtherKeysActive=!0}disableModifyOtherKeys(){if(!this._modifyOtherKeysActive)return;process.stdout.write("\x1B[>4;0m"),this._modifyOtherKeysActive=!1}enableWindowsVTInput(){if(process.platform!=="win32")return;try{let $=process.arch;if($!=="x64"&&$!=="arm64")return;let J=k1.join("native","win32","prebuilds",`win32-${$}`,"win32-console-mode.node");for(let Z of t0(J))try{Z2(Z).enableVirtualTerminalInput?.();return}catch{}}catch{}}async drainInput($=1000,J=50){let Z=this.keyboardProtocolPushed||this._kittyProtocolActive;if(this.clearKeyboardProtocolNegotiationBuffer(),Z)process.stdout.write("\x1B[<u"),this.keyboardProtocolPushed=!1,this._kittyProtocolActive=!1,k0(!1);this.disableModifyOtherKeys();let Y=this.inputHandler;this.inputHandler=void 0;let X=Date.now(),G=()=>{X=Date.now()};process.stdin.on("data",G);let j=Date.now()+$;try{while(!0){let U=Date.now(),Q=j-U;if(Q<=0)break;if(U-X>=J)break;await new Promise((z)=>setTimeout(z,Math.min(J,Q)))}}finally{process.stdin.removeListener("data",G),this.inputHandler=Y}}stop(){if(this.clearProgressInterval())process.stdout.write(b$);process.stdout.write("\x1B[?2004l");let $=this.keyboardProtocolPushed||this._kittyProtocolActive;if(this.clearKeyboardProtocolNegotiationBuffer(),$)process.stdout.write("\x1B[<u"),this.keyboardProtocolPushed=!1,this._kittyProtocolActive=!1,k0(!1);if(this.disableModifyOtherKeys(),this.stdinBuffer)this.stdinBuffer.destroy(),this.stdinBuffer=void 0;if(this.stdinDataHandler)process.stdin.removeListener("data",this.stdinDataHandler),this.stdinDataHandler=void 0;if(this.inputHandler=void 0,this.resizeHandler)process.stdout.removeListener("resize",this.resizeHandler),this.resizeHandler=void 0;if(process.stdin.pause(),process.stdin.setRawMode)process.stdin.setRawMode(this.wasRaw)}write($){if(process.stdout.write($),this.writeLogPath)try{Z1.appendFileSync(this.writeLogPath,$,{encoding:"utf8"})}catch{}}get columns(){return process.stdout.columns||Number(process.env.COLUMNS)||80}get rows(){return process.stdout.rows||Number(process.env.LINES)||24}moveBy($){if($>0)process.stdout.write(`\x1B[${$}B`);else if($<0)process.stdout.write(`\x1B[${-$}A`)}hideCursor(){process.stdout.write("\x1B[?25l")}showCursor(){process.stdout.write("\x1B[?25h")}clearLine(){process.stdout.write("\x1B[K")}clearFromCursor(){process.stdout.write("\x1B[J")}clearScreen(){process.stdout.write("\x1B[2J\x1B[H")}setTitle($){process.stdout.write(`\x1B]0;${$}\x07`)}setProgress($){if($){if(process.stdout.write(v$),!this.progressInterval)this.progressInterval=setInterval(()=>{process.stdout.write(v$)},Y2)}else this.clearProgressInterval(),process.stdout.write(b$)}clearProgressInterval(){if(!this.progressInterval)return!1;return clearInterval(this.progressInterval),this.progressInterval=void 0,!0}}var Z2,Y2=1000,v$="\x1B]9;4;3\x07",b$="\x1B]9;4;0\x07",X2="\x1B[13;2u",G2=7,j2=150,Q2,z2=10,K2=100;var x$=T(()=>{z0();L$();W1();C1();Z2=J2(import.meta.url),Q2=`\x1B[>${G2}u\x1B[?u\x1B[c`});function p$($,J){let Z=$.toLowerCase(),Y=J.toLowerCase(),X=(K)=>{if(K.length===0)return{matches:!0,score:0};if(K.length>Y.length)return{matches:!1,score:0};let N=0,_=0,B=-1,H=0;for(let q=0;q<Y.length&&N<K.length;q++)if(Y[q]===K[N]){let A=q===0||/[\s\-_./:]/.test(Y[q-1]);if(B===q-1)H++,_-=H*5;else if(H=0,B>=0)_+=(q-B-1)*2;if(A)_-=10;_+=q*0.1,B=q,N++}if(N<K.length)return{matches:!1,score:0};if(K===Y)_-=100;return{matches:!0,score:_}},G=X(Z);if(G.matches)return G;let j=Z.match(/^(?<letters>[a-z]+)(?<digits>[0-9]+)$/),U=Z.match(/^(?<digits>[0-9]+)(?<letters>[a-z]+)$/),Q=j?`${j.groups?.digits??""}${j.groups?.letters??""}`:U?`${U.groups?.letters??""}${U.groups?.digits??""}`:"";if(!Q)return G;let z=X(Q);if(!z.matches)return G;return{matches:!0,score:z.score+5}}function Y1($,J,Z){if(!J.trim())return $;let Y=J.trim().split(/[\s/]+/).filter((G)=>G.length>0);if(Y.length===0)return $;let X=[];for(let G of $){let j=Z(G),U=0,Q=!0;for(let z of Y){let K=p$(z,j);if(K.matches)U+=K.score;else{Q=!1;break}}if(Q)X.push({item:G,totalScore:U})}return X.sort((G,j)=>G.totalScore-j.totalScore),X.map((G)=>G.item)}var X1=()=>{};import{spawn as _2}from"child_process";import{readdirSync as H2,statSync as u$}from"fs";import{homedir as m$}from"os";import{basename as y1,dirname as G1,join as K0}from"path";function G0($){return $.replace(/\\/g,"/")}function B2($){return $.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function q2($){let J=G0($);if(!J.includes("/"))return J;let Z=J.endsWith("/"),Y=J.replace(/^\/+|\/+$/g,"");if(!Y)return J;let X="[\\\\/]",G=Y.split("/").filter(Boolean).map((U)=>B2(U));if(G.length===0)return J;let j=G.join(X);if(Z)j+=X;return j}function h$($){for(let J=$.length-1;J>=0;J-=1)if(r$.has($[J]??""))return J;return-1}function O2($){let J=!1,Z=-1;for(let Y=0;Y<$.length;Y+=1)if($[Y]==='"'){if(J=!J,J)Z=Y}return J?Z:null}function c$($,J){return J===0||r$.has($[J-1]??"")}function l$($){let J=O2($);if(J===null)return null;if(J>0&&$[J-1]==="@"){if(!c$($,J-1))return null;return $.slice(J-1)}if(!c$($,J))return null;return $.slice(J)}function d$($){if($.startsWith('@"'))return{rawPrefix:$.slice(2),isAtPrefix:!0,isQuotedPrefix:!0};if($.startsWith('"'))return{rawPrefix:$.slice(1),isAtPrefix:!1,isQuotedPrefix:!0};if($.startsWith("@"))return{rawPrefix:$.slice(1),isAtPrefix:!0,isQuotedPrefix:!1};return{rawPrefix:$,isAtPrefix:!1,isQuotedPrefix:!1}}function o$($,J){let Z=J.isQuotedPrefix||$.includes(" "),Y=J.isAtPrefix?"@":"";if(!Z)return`${Y}${$}`;return`${`${Y}"`}${$}${'"'}`}async function s$($,J,Z,Y,X,G){let j=["--base-directory",$,"--max-results",String(Y),"--type","f","--type","d","--follow","--hidden","--exclude",".git","--exclude",".git/*","--exclude",".git/**"];if(G!==void 0)j.push("--max-depth",String(G));if(G0(Z).includes("/"))j.push("--full-path");if(Z)j.push(q2(Z));return await new Promise((U)=>{if(X.aborted){U([]);return}let Q=_2(J,j,{stdio:["ignore","pipe","pipe"]}),z="",K=!1,N=(B)=>{if(K)return;K=!0,X.removeEventListener("abort",_),U(B)},_=()=>{if(Q.exitCode===null)Q.kill("SIGKILL")};X.addEventListener("abort",_,{once:!0}),Q.stdout.setEncoding("utf-8"),Q.stdout.on("data",(B)=>{z+=B}),Q.on("error",()=>{N([])}),Q.on("close",(B)=>{if(X.aborted||B!==0||!z){N([]);return}let H=z.trim().split(`
|
|
8
|
+
`).filter(Boolean),q=[];for(let A of H){let O=G0(A),P=O.endsWith("/"),E=P?O.slice(0,-1):O;if(E===".git"||E.startsWith(".git/")||E.includes("/.git/"))continue;q.push({path:O,isDirectory:P})}N(q)})})}class b0{commands;basePath;fdPath;constructor($=[],J,Z=null){this.commands=$,this.basePath=J,this.fdPath=Z}async getSuggestions($,J,Z,Y){let G=($[J]||"").slice(0,Z),j=this.extractAtPrefix(G);if(j){let{rawPrefix:z,isQuotedPrefix:K}=d$(j),N=await this.getFuzzyFileSuggestions(z,{isQuotedPrefix:K,signal:Y.signal});if(N.length===0)return null;return{items:N,prefix:j}}if(!Y.force&&G.startsWith("/")){let z=G.indexOf(" ");if(z===-1){let H=G.slice(1),q=this.commands.map((O)=>{let P="name"in O?O.name:O.value,E="argumentHint"in O&&O.argumentHint?O.argumentHint:void 0,C=O.description??"",S=E?C?`${E} \u2014 ${C}`:E:C;return{name:P,label:P,description:S||void 0}}),A=Y1(q,H,(O)=>O.name).map((O)=>({value:O.name,label:O.label,...O.description&&{description:O.description}}));if(A.length===0)return null;return{items:A,prefix:G}}let K=G.slice(1,z),N=G.slice(z+1),_=this.commands.find((H)=>{return("name"in H?H.name:H.value)===K});if(!_||!("getArgumentCompletions"in _)||!_.getArgumentCompletions)return null;let B=await _.getArgumentCompletions(N);if(!Array.isArray(B)||B.length===0)return null;return{items:B,prefix:N}}let U=this.extractPathPrefix(G,Y.force??!1);if(U===null)return null;let Q=this.getFileSuggestions(U);if(Q.length===0)return null;return{items:Q,prefix:U}}applyCompletion($,J,Z,Y,X){let G=$[J]||"",j=G.slice(0,Z-X.length),U=G.slice(Z),Q=X.startsWith('"')||X.startsWith('@"'),z=U.startsWith('"'),K=Y.value.endsWith('"'),N=Q&&K&&z?U.slice(1):U;if(X.startsWith("/")&&j.trim()===""&&!X.slice(1).includes("/")){let E=`${j}/${Y.value} ${N}`,C=[...$];return C[J]=E,{lines:C,cursorLine:J,cursorCol:j.length+Y.value.length+2}}if(X.startsWith("@")){let E=Y.label.endsWith("/"),C=E?"":" ",S=`${j+Y.value}${C}${N}`,I=[...$];I[J]=S;let k=Y.value.endsWith('"'),f=E&&k?Y.value.length-1:Y.value.length;return{lines:I,cursorLine:J,cursorCol:j.length+f+C.length}}let B=G.slice(0,Z);if(B.includes("/")&&B.includes(" ")){let E=j+Y.value+N,C=[...$];C[J]=E;let S=Y.label.endsWith("/"),I=Y.value.endsWith('"'),k=S&&I?Y.value.length-1:Y.value.length;return{lines:C,cursorLine:J,cursorCol:j.length+k}}let H=j+Y.value+N,q=[...$];q[J]=H;let A=Y.label.endsWith("/"),O=Y.value.endsWith('"'),P=A&&O?Y.value.length-1:Y.value.length;return{lines:q,cursorLine:J,cursorCol:j.length+P}}extractAtPrefix($){let J=l$($);if(J?.startsWith('@"'))return J;let Z=h$($),Y=Z===-1?0:Z+1;if($[Y]==="@")return $.slice(Y);return null}extractPathPrefix($,J=!1){let Z=l$($);if(Z)return Z;let Y=h$($),X=Y===-1?$:$.slice(Y+1);if(J)return X;if(X.includes("/")||X.startsWith(".")||X.startsWith("~/"))return X;if(X===""&&$.endsWith(" "))return X;return null}expandHomePath($){if($.startsWith("~/")){let J=K0(m$(),$.slice(2));return $.endsWith("/")&&!J.endsWith("/")?`${J}/`:J}else if($==="~")return m$();return $}resolveScopedFuzzyQuery($){let J=G0($),Z=J.lastIndexOf("/");if(Z===-1)return null;let Y=J.slice(0,Z+1),X=J.slice(Z+1),G;if(Y.startsWith("~/"))G=this.expandHomePath(Y);else if(Y.startsWith("/"))G=Y;else G=K0(this.basePath,Y);try{if(!u$(G).isDirectory())return null}catch{return null}return{baseDir:G,query:X,displayBase:Y}}scopedPathForDisplay($,J){let Z=G0(J);if($==="/")return`/${Z}`;return`${G0($)}${Z}`}getFileSuggestions($){try{let J,Z,{rawPrefix:Y,isAtPrefix:X,isQuotedPrefix:G}=d$($),j=Y;if(j.startsWith("~"))j=this.expandHomePath(j);if(Y===""||Y==="./"||Y==="../"||Y==="~"||Y==="~/"||Y==="/"||X&&Y===""){if(Y.startsWith("~")||j.startsWith("/"))J=j;else J=K0(this.basePath,j);Z=""}else if(Y.endsWith("/")){if(Y.startsWith("~")||j.startsWith("/"))J=j;else J=K0(this.basePath,j);Z=""}else{let K=G1(j),N=y1(j);if(Y.startsWith("~")||j.startsWith("/"))J=K;else J=K0(this.basePath,K);Z=N}let Q=H2(J,{withFileTypes:!0}),z=[];for(let K of Q){if(!K.name.toLowerCase().startsWith(Z.toLowerCase()))continue;let N=K.isDirectory();if(!N&&K.isSymbolicLink())try{let O=K0(J,K.name);N=u$(O).isDirectory()}catch{}let _,B=K.name,H=Y;if(H.endsWith("/"))_=H+B;else if(H.includes("/")||H.includes("\\")){if(H.startsWith("~/")){let O=H.slice(2),P=G1(O);_=`~/${P==="."?B:K0(P,B)}`}else if(H.startsWith("/")){let O=G1(H);if(O==="/")_=`/${B}`;else _=`${O}/${B}`}else if(_=K0(G1(H),B),H.startsWith("./")&&!_.startsWith("./"))_=`./${_}`}else if(H.startsWith("~"))_=`~/${B}`;else _=B;_=G0(_);let q=N?`${_}/`:_,A=o$(q,{isDirectory:N,isAtPrefix:X,isQuotedPrefix:G});z.push({value:A,label:B+(N?"/":"")})}return z.sort((K,N)=>{let _=K.value.endsWith("/"),B=N.value.endsWith("/");if(_&&!B)return-1;if(!_&&B)return 1;return K.label.localeCompare(N.label)}),z}catch(J){return[]}}scoreEntry($,J,Z){let X=y1($).toLowerCase(),G=J.toLowerCase(),j=0;if(X===G)j=100;else if(X.startsWith(G))j=80;else if(X.includes(G))j=50;else if($.toLowerCase().includes(G))j=30;if(Z&&j>0)j+=10;return j}async getBaseDirSuggestions($,J,Z){if(!this.fdPath||Z.aborted)return[];return await s$($,this.fdPath,J,100,Z,1)}async getFuzzyFileSuggestions($,J){if(!this.fdPath||J.signal.aborted)return[];try{let Z=this.resolveScopedFuzzyQuery($),Y=Z?.baseDir??this.basePath,X=Z?.query??$,G=await this.getBaseDirSuggestions(Y,X,J.signal),j=await s$(Y,this.fdPath,X,100,J.signal),U=new Set(G.map((_)=>_.path)),Q=[...G,...j.filter((_)=>{if(U.has(_.path))return!1;return U.add(_.path),!0})];if(J.signal.aborted)return[];let z=Q.map((_)=>({..._,score:X?this.scoreEntry(_.path,X,_.isDirectory):1})).filter((_)=>_.score>0);z.sort((_,B)=>{let H=B.score-_.score;if(H!==0)return H;let q=G0(_.path).split("/").filter(Boolean).length,A=G0(B.path).split("/").filter(Boolean).length,O=q-A;if(O!==0)return O;let P=_.path.length-B.path.length;if(P!==0)return P;return _.path.localeCompare(B.path)});let K=z.slice(0,20),N=[];for(let{path:_,isDirectory:B}of K){let H=B?_.slice(0,-1):_,q=Z?this.scopedPathForDisplay(Z.displayBase,H):H,A=y1(H),O=B?`${q}/`:q,P=o$(O,{isDirectory:B,isAtPrefix:!0,isQuotedPrefix:J.isQuotedPrefix});N.push({value:P,label:A+(B?"/":""),description:q})}return N}catch{return[]}}shouldTriggerFileCompletion($,J,Z){let X=($[J]||"").slice(0,Z);if(X.trim().startsWith("/")&&!X.trim().includes(" "))return!1;return!0}}var r$;var n$=T(()=>{X1();r$=new Set([" ","\t",'"',"'","="])});import{eastAsianWidth as a$}from"get-east-asian-width";function S0(){return J0}function P0(){return A2}function V2($){let J=$.codePointAt(0);return J>=126976&&J<=130047||J>=8960&&J<=9215||J>=9728&&J<=10175||J>=11088&&J<=11093||$.includes("\uFE0F")||$.length>2}function g1($){for(let J=0;J<$.length;J++){let Z=$.charCodeAt(J);if(Z<32||Z>126)return!1}return!0}function R2($,J){if(J<=0||$.length===0)return{text:"",width:0};if(g1($)){let Q=$.slice(0,J);return{text:Q,width:Q.length}}let Z=$.includes("\x1B"),Y=$.includes("\t");if(!Z&&!Y){let Q="",z=0;for(let{segment:K}of J0.segment($)){let N=q0(K);if(z+N>J)break;Q+=K,z+=N}return{text:Q,width:z}}let X="",G=0,j=0,U="";while(j<$.length){let Q=u($,j);if(Q){U+=Q.code,j+=Q.length;continue}if($[j]==="\t"){if(G+3>J)break;if(U)X+=U,U="";X+="\t",G+=3,j++;continue}let z=j;while(z<$.length&&$[z]!=="\t"){if(u($,z))break;z++}for(let{segment:K}of J0.segment($.slice(j,z))){let N=q0(K);if(G+N>J)return{text:X,width:G};if(U)X+=U,U="";X+=K,G+=N}j=z}return{text:X,width:G}}function w1($,J,Z,Y,X,G){let U=L2($),Q=J+Y,z;if(Z.length>0)z=`${$}${U}\x1B[0m${Z}\x1B[0m`;else z=`${$}${U}\x1B[0m`;return G?z+" ".repeat(Math.max(0,X-Q)):z}function q0($){if($==="\t")return 3;if(i$.test($))return[...$].length;if(F2.test($))return 0;if(V2($)&&S2.test($))return 2;let J=$.replace(M2,""),Z=J.codePointAt(0);if(Z===void 0)return 0;if(Z>=127462&&Z<=127487)return 2;let Y=a$(Z),X=!1,G=[...J];for(let j of G.slice(1))if(i$.test(j))Y+=1,X=!1;else if(D2.test(j))X=!0;else if(!E2.test(j)){let U=j.codePointAt(0);if(X||U>=65280&&U<=65519)Y+=a$(U);else if(U===3635||U===3763)Y+=1;X=!1}return Y}function M($){if($.length===0)return 0;if(g1($))return $.length;let J=y0.get($);if(J!==void 0)return J;let Z=$;if($.includes("\t"))Z=Z.replace(/\t/g," ");if(Z.includes("\x1B")){let X="",G=0;while(G<Z.length){let j=u(Z,G);if(j){G+=j.length;continue}X+=Z[G],G++}Z=X}let Y=0;for(let{segment:X}of J0.segment(Z))Y+=q0(X);if(y0.size>=P2){let X=y0.keys().next().value;if(X!==void 0)y0.delete(X)}return y0.set($,Y),Y}function t$($){let J=$;if(T2.test(J))J=J.replace(I2,(X)=>X==="\u0E33"?"\u0E4D\u0E32":"\u0ECD\u0EB2");if(!J.includes("\t"))return J;let Z="",Y=0;while(Y<J.length){let X=u(J,Y);if(X){Z+=X.code,Y+=X.length;continue}Z+=J[Y]==="\t"?" ":J[Y],Y++}return Z}function u($,J){if(J>=$.length||$[J]!=="\x1B")return null;let Z=$[J+1];if(Z==="["){let Y=J+2;while(Y<$.length&&!/[mGKHJ]/.test($[Y]))Y++;if(Y<$.length)return{code:$.substring(J,Y+1),length:Y+1-J};return null}if(Z==="]"){let Y=J+2;while(Y<$.length){if($[Y]==="\x07")return{code:$.substring(J,Y+1),length:Y+1-J};if($[Y]==="\x1B"&&$[Y+1]==="\\")return{code:$.substring(J,Y+2),length:Y+2-J};Y++}return null}if(Z==="_"){let Y=J+2;while(Y<$.length){if($[Y]==="\x07")return{code:$.substring(J,Y+1),length:Y+1-J};if($[Y]==="\x1B"&&$[Y+1]==="\\")return{code:$.substring(J,Y+2),length:Y+2-J};Y++}return null}return null}function e$($){if(!$.startsWith("\x1B]8;"))return;let J=$.endsWith("\x07")?"\x07":"\x1B\\",Z=$.slice(4,J==="\x07"?-1:-2),Y=Z.indexOf(";");if(Y===-1)return;let X=Z.slice(0,Y),G=Z.slice(Y+1);if(!G)return null;return{params:X,url:G,terminator:J}}function W2($){return`\x1B]8;${$.params};${$.url}${$.terminator}`}function $8($){return`\x1B]8;;${$}`}function L2($){if(!$.includes("\x1B]8;"))return"";let J=null,Z=0;while(Z<$.length){let Y=u($,Z);if(Y){let X=e$(Y.code);if(X!==void 0)J=X;Z+=Y.length}else Z++}return J?$8(J.terminator):""}class Q1{bold=!1;dim=!1;italic=!1;underline=!1;blink=!1;inverse=!1;hidden=!1;strikethrough=!1;fgColor=null;bgColor=null;activeHyperlink=null;process($){let J=e$($);if(J!==void 0){this.activeHyperlink=J;return}if(!$.endsWith("m"))return;let Z=$.match(/\x1b\[([\d;]*)m/);if(!Z)return;let Y=Z[1];if(Y===""||Y==="0"){this.reset();return}let X=Y.split(";"),G=0;while(G<X.length){let j=Number.parseInt(X[G],10);if(j===38||j===48){if(X[G+1]==="5"&&X[G+2]!==void 0){let U=`${X[G]};${X[G+1]};${X[G+2]}`;if(j===38)this.fgColor=U;else this.bgColor=U;G+=3;continue}else if(X[G+1]==="2"&&X[G+4]!==void 0){let U=`${X[G]};${X[G+1]};${X[G+2]};${X[G+3]};${X[G+4]}`;if(j===38)this.fgColor=U;else this.bgColor=U;G+=5;continue}}switch(j){case 0:this.reset();break;case 1:this.bold=!0;break;case 2:this.dim=!0;break;case 3:this.italic=!0;break;case 4:this.underline=!0;break;case 5:this.blink=!0;break;case 7:this.inverse=!0;break;case 8:this.hidden=!0;break;case 9:this.strikethrough=!0;break;case 21:this.bold=!1;break;case 22:this.bold=!1,this.dim=!1;break;case 23:this.italic=!1;break;case 24:this.underline=!1;break;case 25:this.blink=!1;break;case 27:this.inverse=!1;break;case 28:this.hidden=!1;break;case 29:this.strikethrough=!1;break;case 39:this.fgColor=null;break;case 49:this.bgColor=null;break;default:if(j>=30&&j<=37||j>=90&&j<=97)this.fgColor=String(j);else if(j>=40&&j<=47||j>=100&&j<=107)this.bgColor=String(j);break}G++}}reset(){this.bold=!1,this.dim=!1,this.italic=!1,this.underline=!1,this.blink=!1,this.inverse=!1,this.hidden=!1,this.strikethrough=!1,this.fgColor=null,this.bgColor=null}clear(){this.reset(),this.activeHyperlink=null}getActiveCodes(){let $=[];if(this.bold)$.push("1");if(this.dim)$.push("2");if(this.italic)$.push("3");if(this.underline)$.push("4");if(this.blink)$.push("5");if(this.inverse)$.push("7");if(this.hidden)$.push("8");if(this.strikethrough)$.push("9");if(this.fgColor)$.push(this.fgColor);if(this.bgColor)$.push(this.bgColor);let J=$.length>0?`\x1B[${$.join(";")}m`:"";if(this.activeHyperlink)J+=W2(this.activeHyperlink);return J}hasActiveCodes(){return this.bold||this.dim||this.italic||this.underline||this.blink||this.inverse||this.hidden||this.strikethrough||this.fgColor!==null||this.bgColor!==null||this.activeHyperlink!==null}getLineEndReset(){let $="";if(this.underline)$+="\x1B[24m";if(this.activeHyperlink)$+=$8(this.activeHyperlink.terminator);return $}}function J8($,J){let Z=0;while(Z<$.length){let Y=u($,Z);if(Y)J.process(Y.code),Z+=Y.length;else Z++}}function C2($){let J=[],Z="",Y="",X=null,G=0,j=()=>{if(!Z)return;J.push(Z),Z="",X=null};while(G<$.length){let U=u($,G);if(U){Y+=U.code,G+=U.length;continue}let Q=G;while(Q<$.length&&!u($,Q))Q++;for(let{segment:z}of J0.segment($.slice(G,Q))){let K=z===" ";if(!K&&j1.test(z)){j();let _=Y+z;Y="",J.push(_);continue}let N=K?"space":"word";if(Z&&X!==N)j();if(Y)Z+=Y,Y="";X=N,Z+=z}G=Q}if(Y)if(Z)Z+=Y;else if(J.length>0)J[J.length-1]+=Y;else Z=Y;if(Z)J.push(Z);return J}function a($,J){if(!$)return[""];let Z=$.split(/\r\n|\r|\n/),Y=[],X=new Q1;for(let G of Z){let j=Y.length>0?X.getActiveCodes():"",U=k2(j+G,J);for(let Q of U)Y.push(Q);J8(G,X)}return Y.length>0?Y:[""]}function k2($,J){if(!$)return[""];if(M($)<=J)return[$];let Y=[],X=new Q1,G=C2($),j="",U=0;for(let Q of G){let z=M(Q),K=Q.trim()==="";if(z>J&&!K){if(j){let B=X.getLineEndReset();if(B)j+=B;Y.push(j),j="",U=0}let _=v2(Q,J,X);for(let B=0;B<_.length-1;B++)Y.push(_[B]);j=_[_.length-1],U=M(j);continue}if(U+z>J&&U>0){let _=j.trimEnd(),B=X.getLineEndReset();if(B)_+=B;if(Y.push(_),K)j=X.getActiveCodes(),U=0;else j=X.getActiveCodes()+Q,U=z}else j+=Q,U+=z;J8(Q,X)}if(j)Y.push(j);return Y.length>0?Y.map((Q)=>Q.trimEnd()):[""]}function o($){return/\s/.test($)}function v2($,J,Z){let Y=[],X=Z.getActiveCodes(),G=0,j=0,U=[];while(j<$.length){let Q=u($,j);if(Q)U.push({type:"ansi",value:Q.code}),j+=Q.length;else{let z=j;while(z<$.length){if(u($,z))break;z++}let K=$.slice(j,z);for(let N of J0.segment(K))U.push({type:"grapheme",value:N.segment});j=z}}for(let Q of U){if(Q.type==="ansi"){X+=Q.value,Z.process(Q.value);continue}let z=Q.value;if(!z)continue;let K=M(z);if(G+K>J){let N=Z.getLineEndReset();if(N)X+=N;Y.push(X),X=Z.getActiveCodes(),G=0}X+=z,G+=K}if(X)Y.push(X);return Y.length>0?Y:[""]}function O0($,J,Z){let Y=M($),X=Math.max(0,J-Y),G=" ".repeat(X),j=$+G;return Z(j)}function m($,J,Z="...",Y=!1){if(J<=0)return"";if($.length===0)return Y?" ".repeat(J):"";let X=M(Z);if(X>=J){let q=M($);if(q<=J)return Y?$+" ".repeat(J-q):$;let A=R2(Z,J);if(A.width===0)return Y?" ".repeat(J):"";return w1("",0,A.text,A.width,J,Y)}if(g1($)){if($.length<=J)return Y?$+" ".repeat(J-$.length):$;let q=J-X;return w1($.slice(0,q),q,Z,X,J,Y)}let G=J-X,j="",U="",Q=0,z=0,K=!0,N=!1,_=!1,B=$.includes("\x1B"),H=$.includes("\t");if(!B&&!H){for(let{segment:q}of J0.segment($)){let A=q0(q);if(K&&z+A<=G)j+=q,z+=A;else K=!1;if(Q+=A,Q>J){N=!0;break}}_=!N}else{let q=0;while(q<$.length){let A=u($,q);if(A){U+=A.code,q+=A.length;continue}if($[q]==="\t"){if(K&&z+3<=G){if(U)j+=U,U="";j+="\t",z+=3}else K=!1,U="";if(Q+=3,Q>J){N=!0;break}q++;continue}let O=q;while(O<$.length&&$[O]!=="\t"){if(u($,O))break;O++}for(let{segment:P}of J0.segment($.slice(q,O))){let E=q0(P);if(K&&z+E<=G){if(U)j+=U,U="";j+=P,z+=E}else K=!1,U="";if(Q+=E,Q>J){N=!0;break}}if(N)break;q=O}_=q>=$.length}if(!N&&_)return Y?$+" ".repeat(Math.max(0,J-Q)):$;return w1(j,z,Z,X,J,Y)}function t($,J,Z,Y=!1){return p1($,J,Z,Y).text}function p1($,J,Z,Y=!1){if(Z<=0)return{text:"",width:0};let X=J+Z,G="",j=0,U=0,Q=0,z="";while(Q<$.length){let K=u($,Q);if(K){if(U>=J&&U<X)G+=K.code;else if(U<J)z+=K.code;Q+=K.length;continue}let N=Q;while(N<$.length&&!u($,N))N++;for(let{segment:_}of J0.segment($.slice(Q,N))){let B=q0(_),H=U>=J&&U<X,q=!Y||U+B<=X;if(H&&q){if(z)G+=z,z="";G+=_,j+=B}if(U+=B,U>=X)break}if(Q=N,U>=X)break}return{text:G,width:j}}function Z8($,J,Z,Y,X=!1){let G="",j=0,U="",Q=0,z=0,K=0,N="",_=!1,B=Z+Y;f1.clear();while(K<$.length){let H=u($,K);if(H){if(f1.process(H.code),z<J)N+=H.code;else if(z>=Z&&z<B&&_)U+=H.code;K+=H.length;continue}let q=K;while(q<$.length&&!u($,q))q++;for(let{segment:A}of J0.segment($.slice(K,q))){let O=q0(A);if(z<J&&z+O<=J){if(N)G+=N,N="";G+=A,j+=O}else if(z>=Z&&z<B){if(!X||z+O<=B){if(!_)U+=f1.getActiveCodes(),_=!0;U+=A,Q+=O}}if(z+=O,Y<=0?z>=J:z>=B)break}if(K=q,Y<=0?z>=J:z>=B)break}return{before:G,beforeWidth:j,after:U,afterWidth:Q}}var J0,A2,F2,M2,E2,D2,i$,S2,P2=512,y0,j1,T2,I2,x1,f1;var g=T(()=>{J0=new Intl.Segmenter(void 0,{granularity:"grapheme"}),A2=new Intl.Segmenter(void 0,{granularity:"word"});F2=/^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Mark}|\p{Surrogate})+$/v,M2=/^[\p{Default_Ignorable_Code_Point}\p{Control}\p{Format}\p{Mark}\p{Surrogate}]+/v,E2=/^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Format}|\p{Mark}|\p{Surrogate})$/v,D2=/^\p{Mark}$/v,i$=/^(?:[\p{Spacing_Mark}--[\u1734\u302E\u302F]]|[\u065F\u0F7F\u102B\u102C\u1031\u1033-\u1035\u1038\u103A-\u103E])+$/v,S2=/^\p{RGI_Emoji}$/v,y0=new Map,j1=/[\p{Script_Extensions=Han}\p{Script_Extensions=Hiragana}\p{Script_Extensions=Katakana}\p{Script_Extensions=Hangul}\p{Script_Extensions=Bopomofo}]/u;T2=/[\u0e33\u0eb3]/,I2=/[\u0e33\u0eb3]/g;x1=/[(){}[\]<>.,;:'"!?+\-=*/\\|&%^$#@~`]/;f1=new Q1});var Y8=T(()=>{g()});function u1($){if($===void 0)return[];let J=Array.isArray($)?$:[$],Z=new Set,Y=[];for(let X of J)if(!Z.has(X))Z.add(X),Y.push(X);return Y}class h1{definitions;userBindings;keysById=new Map;conflicts=[];constructor($,J={}){this.definitions=$,this.userBindings=J,this.rebuild()}rebuild(){this.keysById.clear(),this.conflicts=[];let $=new Map;for(let[J,Z]of Object.entries(this.userBindings)){if(!(J in this.definitions))continue;for(let Y of u1(Z)){let X=$.get(Y)??new Set;X.add(J),$.set(Y,X)}}for(let[J,Z]of $)if(Z.size>1)this.conflicts.push({key:J,keybindings:[...Z]});for(let[J,Z]of Object.entries(this.definitions)){let Y=this.userBindings[J],X=Y===void 0?u1(Z.defaultKeys):u1(Y);this.keysById.set(J,X)}}matches($,J){let Z=this.keysById.get(J)??[];for(let Y of Z)if(d($,Y))return!0;return!1}getKeys($){return[...this.keysById.get($)??[]]}getDefinition($){return this.definitions[$]}getConflicts(){return this.conflicts.map(($)=>({...$,keybindings:[...$.keybindings]}))}setUserBindings($){this.userBindings=$,this.rebuild()}getUserBindings(){return{...this.userBindings}}getResolvedBindings(){let $={};for(let J of Object.keys(this.definitions)){let Z=this.keysById.get(J)??[];$[J]=Z.length===1?Z[0]:[...Z]}return $}}function e(){if(!m1)m1=new h1(X8);return m1}var X8,m1=null;var N0=T(()=>{z0();X8={"tui.editor.cursorUp":{defaultKeys:"up",description:"Move cursor up"},"tui.editor.cursorDown":{defaultKeys:"down",description:"Move cursor down"},"tui.editor.historyPrevious":{defaultKeys:[],description:"Select previous prompt history entry"},"tui.editor.historyNext":{defaultKeys:[],description:"Select next prompt history entry"},"tui.editor.cursorLeft":{defaultKeys:["left","ctrl+b"],description:"Move cursor left"},"tui.editor.cursorRight":{defaultKeys:["right","ctrl+f"],description:"Move cursor right"},"tui.editor.cursorWordLeft":{defaultKeys:["alt+left","ctrl+left","alt+b"],description:"Move cursor word left"},"tui.editor.cursorWordRight":{defaultKeys:["alt+right","ctrl+right","alt+f"],description:"Move cursor word right"},"tui.editor.cursorLineStart":{defaultKeys:["home","ctrl+home","ctrl+a"],description:"Move to line start"},"tui.editor.cursorLineEnd":{defaultKeys:["end","ctrl+end","ctrl+e"],description:"Move to line end"},"tui.editor.jumpForward":{defaultKeys:"ctrl+]",description:"Jump forward to character"},"tui.editor.jumpBackward":{defaultKeys:"ctrl+alt+]",description:"Jump backward to character"},"tui.editor.pageUp":{defaultKeys:["pageUp","ctrl+pageUp"],description:"Page up"},"tui.editor.pageDown":{defaultKeys:["pageDown","ctrl+pageDown"],description:"Page down"},"tui.editor.deleteCharBackward":{defaultKeys:"backspace",description:"Delete character backward"},"tui.editor.deleteCharForward":{defaultKeys:["delete","ctrl+d"],description:"Delete character forward"},"tui.editor.deleteWordBackward":{defaultKeys:["ctrl+w","alt+backspace"],description:"Delete word backward"},"tui.editor.deleteWordForward":{defaultKeys:["alt+d","alt+delete"],description:"Delete word forward"},"tui.editor.deleteToLineStart":{defaultKeys:"ctrl+u",description:"Delete to line start"},"tui.editor.deleteToLineEnd":{defaultKeys:"ctrl+k",description:"Delete to line end"},"tui.editor.yank":{defaultKeys:"ctrl+y",description:"Yank"},"tui.editor.yankPop":{defaultKeys:"alt+y",description:"Yank pop"},"tui.editor.undo":{defaultKeys:"ctrl+-",description:"Undo"},"tui.input.newLine":{defaultKeys:["shift+enter","ctrl+j"],description:"Insert newline"},"tui.input.submit":{defaultKeys:"enter",description:"Submit input"},"tui.input.tab":{defaultKeys:"tab",description:"Tab / autocomplete"},"tui.input.copy":{defaultKeys:"ctrl+c",description:"Copy selection"},"tui.select.up":{defaultKeys:"up",description:"Move selection up"},"tui.select.down":{defaultKeys:"down",description:"Move selection down"},"tui.select.pageUp":{defaultKeys:"pageUp",description:"Selection page up"},"tui.select.pageDown":{defaultKeys:"pageDown",description:"Selection page down"},"tui.select.confirm":{defaultKeys:"enter",description:"Confirm selection"},"tui.select.cancel":{defaultKeys:["escape","ctrl+c"],description:"Cancel selection"},"tui.altScreen.pageUp":{defaultKeys:"pageUp",description:"Scroll viewport up one page"},"tui.altScreen.pageDown":{defaultKeys:"pageDown",description:"Scroll viewport down one page"},"tui.altScreen.halfPageUp":{defaultKeys:[],description:"Scroll viewport up half a page"},"tui.altScreen.halfPageDown":{defaultKeys:[],description:"Scroll viewport down half a page"},"tui.altScreen.lineUp":{defaultKeys:[],description:"Scroll viewport up one line"},"tui.altScreen.lineDown":{defaultKeys:[],description:"Scroll viewport down one line"},"tui.altScreen.previousPrompt":{defaultKeys:["ctrl+shift+up","ctrl+up"],description:"Jump to previous semantic prompt"},"tui.altScreen.nextPrompt":{defaultKeys:["ctrl+shift+down","ctrl+down"],description:"Jump to next semantic prompt"},"tui.altScreen.search":{defaultKeys:"ctrl+shift+f",description:"Search the primary scroll view"},"tui.altScreen.searchNext":{defaultKeys:["enter","ctrl+g"],description:"Select the next search match"},"tui.altScreen.searchPrevious":{defaultKeys:["shift+enter","ctrl+shift+g"],description:"Select the previous search match"},"tui.altScreen.searchClose":{defaultKeys:"escape",description:"Close transcript search"},"tui.altScreen.top":{defaultKeys:"home",description:"Scroll viewport to top"},"tui.altScreen.bottom":{defaultKeys:"end",description:"Scroll viewport to bottom"}}});class Z0{text;paddingX;paddingY;customBgFn;cachedText;cachedWidth;cachedLines;constructor($="",J=1,Z=1,Y){this.text=$,this.paddingX=J,this.paddingY=Z,this.customBgFn=Y}setText($){this.text=$,this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0}setCustomBgFn($){this.customBgFn=$,this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0}invalidate(){this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0}render($){if(this.cachedLines&&this.cachedText===this.text&&this.cachedWidth===$)return this.cachedLines;if(!this.text||this.text.trim()===""){let N=[];return this.cachedText=this.text,this.cachedWidth=$,this.cachedLines=N,N}let J=this.text.replace(/\t/g," "),Z=Math.min(this.paddingX,Math.max(0,Math.floor(($-1)/2))),Y=Math.max(1,$-Z*2),X=a(J,Y),G=" ".repeat(Z),j=" ".repeat(Z),U=[];for(let N of X){let _=G+N+j;if(this.customBgFn)U.push(O0(_,$,this.customBgFn));else{let B=M(_),H=Math.max(0,$-B);U.push(_+" ".repeat(H))}}let Q=" ".repeat($),z=[];for(let N=0;N<this.paddingY;N++){let _=this.customBgFn?O0(Q,$,this.customBgFn):Q;z.push(_)}let K=[...z,...U,...z];return this.cachedText=this.text,this.cachedWidth=$,this.cachedLines=K,K.length>0?K:[""]}}var c1=T(()=>{g()});var G8,j8=80,U1;var l1=T(()=>{c1();G8=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];U1=class U1 extends Z0{frames=[...G8];intervalMs=j8;currentFrame=0;intervalId=null;ui=null;renderIndicatorVerbatim=!1;spinnerColorFn;messageColorFn;message="Loading...";constructor($,J,Z,Y="Loading...",X){super("",1,0);this.ui=$,this.spinnerColorFn=J,this.messageColorFn=Z,this.message=Y,this.setIndicator(X)}render($){return["",...super.render($)]}start(){this.updateDisplay(),this.restartAnimation()}stop(){if(this.intervalId)clearInterval(this.intervalId),this.intervalId=null}setMessage($){this.message=$,this.updateDisplay()}setIndicator($){this.renderIndicatorVerbatim=$!==void 0,this.frames=$?.frames!==void 0?[...$.frames]:[...G8],this.intervalMs=$?.intervalMs&&$.intervalMs>0?$.intervalMs:j8,this.currentFrame=0,this.start()}restartAnimation(){if(this.stop(),this.frames.length<=1)return;this.intervalId=setInterval(()=>{this.currentFrame=(this.currentFrame+1)%this.frames.length,this.updateDisplay()},this.intervalMs)}updateDisplay(){let $=this.frames[this.currentFrame]??"",J=this.renderIndicatorVerbatim?$:this.spinnerColorFn($),Z=$.length>0?`${J} `:"";if(this.setText(`${Z}${this.messageColorFn(this.message)}`),this.ui)this.ui.requestRender()}}});var z1;var Q8=T(()=>{N0();l1();z1=class z1 extends U1{abortController=new AbortController;onAbort;get signal(){return this.abortController.signal}get aborted(){return this.abortController.signal.aborted}handleInput($){if(e().matches($,"tui.select.cancel"))this.abortController.abort(),this.onAbort?.()}dispose(){this.stop()}}});class w0{ring=[];push($,J){if(!$)return;if(J.accumulate&&this.ring.length>0){let Z=this.ring.pop();this.ring.push(J.prepend?$+Z:Z+$)}else this.ring.push($)}peek(){return this.ring.length>0?this.ring[this.ring.length-1]:void 0}rotate(){if(this.ring.length>1){let $=this.ring.pop();this.ring.unshift($)}}get length(){return this.ring.length}}var d1=()=>{};function b2($){let J=$.startsWith("#")?$.slice(1):$,Z=parseInt(J.slice(0,2),16),Y=parseInt(J.slice(2,4),16),X=parseInt(J.slice(4,6),16);return{r:Z,g:Y,b:X}}function R0($){if(!/^[0-9a-f]+$/i.test($))return;let J=16**$.length-1;if(J<=0)return;return Math.round(parseInt($,16)/J*255)}function z8($){return U8.test($)}function o1($){let J=$.match(U8);if(!J)return;let Z=J[1].trim();if(Z.startsWith("#")){let K=Z.slice(1);if(/^[0-9a-f]{6}$/i.test(K))return b2(Z);if(/^[0-9a-f]{12}$/i.test(K)){let N=R0(K.slice(0,4)),_=R0(K.slice(4,8)),B=R0(K.slice(8,12));return N!==void 0&&_!==void 0&&B!==void 0?{r:N,g:_,b:B}:void 0}return}let Y=Z.replace(/^rgba?:/i,""),[X,G,j]=Y.split("/");if(X===void 0||G===void 0||j===void 0)return;let U=R0(X),Q=R0(G),z=R0(j);return U!==void 0&&Q!==void 0&&z!==void 0?{r:U,g:Q,b:z}:void 0}function s1($){let J=$.match(y2);if(!J)return;return J[1]==="2"?"light":"dark"}var U8,y2;var r1=T(()=>{U8=/^\x1b\]11;([^\x07\x1b]*)(?:\x07|\x1b\\)$/i,y2=/^(?:\x1b\[\?997;(1|2)n)+$/});import{execSync as w2}from"child_process";function a1($){f2=$}function g2(){try{return w2("tmux display-message -p '#{client_termfeatures}'",{encoding:"utf8",timeout:250,stdio:["ignore","pipe","ignore"]}).split(",").map((J)=>J.trim()).includes("hyperlinks")}catch{return!1}}function x2($){let J=process.env.TERM_PROGRAM?.toLowerCase()||"",Z=process.env.TERMINAL_EMULATOR?.toLowerCase()||"",Y=process.env.TERM?.toLowerCase()||"",X=process.env.COLORTERM?.toLowerCase()||"",G=X==="truecolor"||X==="24bit",j=process.platform==="win32";if(process.env.TMUX||Y.startsWith("tmux"))return{images:null,trueColor:G,hyperlinks:$()};if(Y.startsWith("screen"))return{images:null,trueColor:G,hyperlinks:!1};if(process.env.KITTY_WINDOW_ID||J==="kitty")return{images:"kitty",trueColor:!0,hyperlinks:!0};if(J==="ghostty"||Y.includes("ghostty")||process.env.GHOSTTY_RESOURCES_DIR)return{images:"kitty",trueColor:!0,hyperlinks:!0};if(process.env.WEZTERM_PANE||J==="wezterm")return{images:"kitty",trueColor:!0,hyperlinks:!0};if(J==="warpterminal"||process.env.WARP_SESSION_ID||process.env.WARP_TERMINAL_SESSION_UUID)return{images:"kitty",trueColor:!0,hyperlinks:!0};if(process.env.ITERM_SESSION_ID||J==="iterm.app")return{images:"iterm2",trueColor:!0,hyperlinks:!0};if(process.env.WT_SESSION)return{images:null,trueColor:!0,hyperlinks:!0};if(J==="vscode")return{images:null,trueColor:!0,hyperlinks:!0};if(J==="alacritty")return{images:null,trueColor:!0,hyperlinks:!0};if(Z==="jetbrains-jediterm")return{images:null,trueColor:!0,hyperlinks:!1};if(j)return{images:null,trueColor:!0,hyperlinks:!1};return{images:null,trueColor:G,hyperlinks:!1}}function N8($){return $==="1"?!0:$==="0"?!1:void 0}function B8($=g2){let J=N8(process.env.PI_HYPERLINKS),Z=x2(J===void 0?$:()=>J),Y=process.env.PI_IMAGE_PROTOCOL?.toLowerCase(),X=Y==="kitty"||Y==="iterm2"?Y:Y==="none"||Y==="0"?null:void 0,G=N8(process.env.PI_TRUE_COLOR);return{...Z,...X!==void 0?{images:X}:{},...G!==void 0?{trueColor:G}:{},...J!==void 0?{hyperlinks:J}:{}}}function A0(){if(!n1){let $=K8.hyperlinks;n1={...B8($===void 0?void 0:()=>$),...K8}}return n1}function s($){if($.startsWith(_8)||$.startsWith(H8))return!0;return $.includes(_8)||$.includes(H8)}function K1($){return`\x1B_Ga=d,d=I,i=${$},q=2\x1B\\`}function i1($,J){return`\x1B]8;;${J}\x1B\\${$}\x1B]8;;\x1B\\`}var n1=null,K8,f2,_8="\x1B_G",H8="\x1B]1337;File=";var _0=T(()=>{K8={},f2={widthPx:9,heightPx:18}});import*as O8 from"os";import*as A8 from"path";import{performance as N1}from"perf_hooks";function t1($){return $!==null&&"focused"in $}function q8($,J){if($===void 0)return;if(typeof $==="number")return $;let Z=$.match(/^(\d+(?:\.\d+)?)%$/);if(Z)return Math.floor(J*parseFloat(Z[1])/100);return}class T0{children=[];addChild($){this.children.push($)}removeChild($){let J=this.children.indexOf($);if(J!==-1)this.children.splice(J,1)}clear(){this.children=[]}invalidate(){for(let $ of this.children)$.invalidate?.()}render($){let J=[];for(let Z of this.children){let Y=Z.render($);for(let X of Y)J.push(X)}return J}}function f0($,J,Z,Y,X){if(s($))return $;let G=Z+Y,j=Z8($,Z,G,X-G,!0),U=p1(J,0,Y,!0),Q=Math.max(0,Z-j.beforeWidth),z=Math.max(0,Y-U.width),K=Math.max(Z,j.beforeWidth),N=Math.max(Y,U.width),_=Math.max(0,X-K-N),B=Math.max(0,_-j.afterWidth),H=j.before+" ".repeat(Q)+e1+U.text+" ".repeat(z)+e1+j.after+" ".repeat(B);return M(H)<=X?H:t(H,0,X,!0)}var j0="\x1B_pi:c\x07",e1="\x1B[0m\x1B]8;;\x07",g0;var Y0=T(()=>{z0();r1();_0();g();g0=class g0 extends T0{terminal;focusedComponent=null;inputListeners=new Set;onDebug;renderRequested=!1;immediateRenderScheduled=!1;renderTimer;lastRenderAt=0;static MIN_RENDER_INTERVAL_MS=16;showHardwareCursor=process.env.PI_HARDWARE_CURSOR==="1";clearOnShrink=process.env.PI_CLEAR_ON_SHRINK==="1";fullRedrawCount=0;stopped=!1;pendingOsc11BackgroundReplies=0;pendingOsc11BackgroundQueries=[];terminalColorSchemeListeners=new Set;terminalColorSchemeNotificationsEnabled=!1;logDirectory;focusOrderCounter=0;overlayStack=[];get hasOverlayEntries(){return this.overlayStack.length>0}overlayFocusRestore={status:"inactive"};constructor($,J,Z){super();if(this.terminal=$,this.logDirectory=Z??process.env.PI_CODING_AGENT_DIR??A8.join(O8.homedir(),".pi","agent"),J!==void 0)this.showHardwareCursor=J}resetRenderState(){}beforeTerminalStart(){}afterTerminalStart(){}beforeTerminalStop($){}afterTerminalStop($){}get fullRedraws(){return this.fullRedrawCount}getShowHardwareCursor(){return this.showHardwareCursor}setShowHardwareCursor($){if(this.showHardwareCursor===$)return;if(this.showHardwareCursor=$,!$)this.terminal.hideCursor();this.requestRender()}getClearOnShrink(){return this.clearOnShrink}setClearOnShrink($){this.clearOnShrink=$}getFocusedComponent(){return this.focusedComponent}setFocus($){this.setFocusInternal({component:$,overlayFocusRestore:"clear"})}setFocusInternal({component:$,overlayFocusRestore:J}){let Z=this.focusedComponent,Y=$,X=Z?this.overlayStack.find((Q)=>Q.component===Z&&this.isOverlayVisible(Q)):void 0,G=Y?this.overlayStack.some((Q)=>Q.component===Y):!1,j=this.getVisibleOverlayFocusRestore();if(Y&&!G){if(j.status==="blocked"&&j.blockedBy===Z)if(j.resume.status==="focus-target"||!this.isComponentMounted(j.blockedBy))Y=this.resolveBlockedOverlayFocusResume(j);else this.overlayFocusRestore={status:"blocked",overlay:j.overlay,blockedBy:Y,resume:j.resume};else if(X&&j.status!=="inactive"&&j.overlay===X&&!this.isOverlayFocusAncestor(X,Y))this.overlayFocusRestore={status:"blocked",overlay:X,blockedBy:Y,resume:{status:"restore-overlay"}}}else if(Y===null){if(j.status==="blocked"&&j.blockedBy===Z)Y=this.resolveBlockedOverlayFocusResume(j);else if(J==="clear")this.clearOverlayFocusRestore()}if(t1(this.focusedComponent))this.focusedComponent.focused=!1;if(this.focusedComponent=Y,t1(Y))Y.focused=!0;let U=Y?this.overlayStack.find((Q)=>Q.component===Y&&this.isOverlayVisible(Q)):void 0;if(U)this.overlayFocusRestore={status:"eligible",overlay:U}}clearOverlayFocusRestore(){this.overlayFocusRestore={status:"inactive"}}clearOverlayFocusRestoreFor($){if(this.overlayFocusRestore.status!=="inactive"&&this.overlayFocusRestore.overlay===$)this.clearOverlayFocusRestore()}resolveBlockedOverlayFocusResume($){if($.resume.status==="restore-overlay")return $.overlay.component;return this.clearOverlayFocusRestore(),$.resume.target}getVisibleOverlayFocusRestore(){let $=this.overlayFocusRestore;if($.status==="inactive")return $;if(!this.overlayStack.includes($.overlay)||!this.isOverlayVisible($.overlay))return{status:"inactive"};return $}isOverlayFocusAncestor($,J){let Z=new Set,Y=$.preFocus;while(Y&&!Z.has(Y)){if(Z.add(Y),Y===J)return!0;Y=this.overlayStack.find((X)=>X.component===Y)?.preFocus??null}return!1}retargetOverlayPreFocus($){for(let J of this.overlayStack)if(J!==$&&J.preFocus===$.component)J.preFocus=$.preFocus}getMountedRoots(){return this.children}isComponentMounted($){return this.getMountedRoots().some((J)=>this.containsComponent(J,$))}containsComponent($,J){if($===J)return!0;if(!($ instanceof T0))return!1;return $.children.some((Z)=>this.containsComponent(Z,J))}showOverlay($,J){let Z={component:$,...J===void 0?{}:{options:J},preFocus:this.focusedComponent,hidden:!1,focusOrder:++this.focusOrderCounter};if(this.overlayStack.push(Z),!J?.nonCapturing&&this.isOverlayVisible(Z))this.setFocus($);return this.terminal.hideCursor(),this.requestRender(),{hide:()=>{let Y=this.overlayStack.indexOf(Z);if(Y!==-1){if(this.clearOverlayFocusRestoreFor(Z),this.retargetOverlayPreFocus(Z),this.overlayStack.splice(Y,1),this.focusedComponent===$){let X=this.getTopmostVisibleOverlay();this.setFocus(X?.component??Z.preFocus)}if(this.overlayStack.length===0)this.terminal.hideCursor();this.requestRender()}},setHidden:(Y)=>{if(Z.hidden===Y)return;if(Z.hidden=Y,Y){if(this.clearOverlayFocusRestoreFor(Z),this.focusedComponent===$){let X=this.getTopmostVisibleOverlay();this.setFocus(X?.component??Z.preFocus)}}else if(!J?.nonCapturing&&this.isOverlayVisible(Z))Z.focusOrder=++this.focusOrderCounter,this.setFocus($);this.requestRender()},isHidden:()=>Z.hidden,focus:()=>{if(!this.overlayStack.includes(Z)||!this.isOverlayVisible(Z))return;Z.focusOrder=++this.focusOrderCounter,this.setFocus($),this.requestRender()},unfocus:(Y)=>{let X=this.focusedComponent===$,G=this.overlayFocusRestore,j=G.status!=="inactive"&&G.overlay===Z;if(!X&&!j)return;if(G.status==="blocked"&&G.overlay===Z&&this.focusedComponent===G.blockedBy){if(Y)this.overlayFocusRestore={status:"blocked",overlay:Z,blockedBy:G.blockedBy,resume:{status:"focus-target",target:Y.target}};else this.clearOverlayFocusRestore();this.requestRender();return}if(this.clearOverlayFocusRestoreFor(Z),X||Y){let U=this.getTopmostVisibleOverlay(),Q=U&&U!==Z?U.component:Z.preFocus;this.setFocus(Y?Y.target:Q)}this.requestRender()},isFocused:()=>this.focusedComponent===$}}hideOverlay(){let $=this.overlayStack[this.overlayStack.length-1];if(!$)return;if(this.clearOverlayFocusRestoreFor($),this.retargetOverlayPreFocus($),this.overlayStack.pop(),this.focusedComponent===$.component){let J=this.getTopmostVisibleOverlay();this.setFocus(J?.component??$.preFocus)}if(this.overlayStack.length===0)this.terminal.hideCursor();this.requestRender()}hasOverlay(){return this.overlayStack.some(($)=>this.isOverlayVisible($))}isOverlayFocused(){return this.overlayStack.some(($)=>$.component===this.focusedComponent&&this.isOverlayVisible($))}isOverlayVisible($){if($.hidden)return!1;if($.options?.visible)return $.options.visible(this.terminal.columns,this.terminal.rows);return!0}getTopmostVisibleOverlay(){let $;for(let J of this.overlayStack){if(J.options?.nonCapturing||!this.isOverlayVisible(J))continue;if(!$||J.focusOrder>$.focusOrder)$=J}return $}invalidate(){for(let $ of this.getMountedRoots())$.invalidate();for(let $ of this.overlayStack)$.component.invalidate()}start(){if(this.stopped=!1,this.beforeTerminalStart(),this.terminal.start(($)=>this.handleTerminalInput($),()=>this.requestRender()),this.afterTerminalStart(),this.terminal.hideCursor(),this.terminalColorSchemeNotificationsEnabled)this.terminal.write("\x1B[?2031h");this.queryCellSize(),this.requestRender()}addInputListener($){return this.inputListeners.add($),()=>{this.inputListeners.delete($)}}removeInputListener($){this.inputListeners.delete($)}onTerminalColorSchemeChange($){return this.terminalColorSchemeListeners.add($),()=>{this.terminalColorSchemeListeners.delete($)}}setTerminalColorSchemeNotifications($){if(this.terminalColorSchemeNotificationsEnabled===$)return;if(this.terminalColorSchemeNotificationsEnabled=$,!this.stopped)this.terminal.write($?"\x1B[?2031h":"\x1B[?2031l")}queryCellSize(){if(!A0().images)return;this.terminal.write("\x1B[16t")}stop($={}){if(this.stopped=!0,this.cancelRenderTimer(),this.terminalColorSchemeNotificationsEnabled)this.terminal.write("\x1B[?2031l");this.beforeTerminalStop($),this.terminal.showCursor(),this.terminal.stop(),this.afterTerminalStop($)}renderNow($=!1){if($)this.resetRenderState();this.renderRequested=!1,this.cancelRenderTimer(),this.lastRenderAt=N1.now(),this.doRender()}requestRender($=!1){if($){this.resetRenderState(),this.requestImmediateRender();return}if(this.renderRequested)return;this.renderRequested=!0,process.nextTick(()=>this.scheduleRender())}requestImmediateRender(){if(this.cancelRenderTimer(),this.renderRequested=!0,this.immediateRenderScheduled)return;this.immediateRenderScheduled=!0,process.nextTick(()=>{if(this.immediateRenderScheduled=!1,this.stopped||!this.renderRequested)return;this.cancelRenderTimer(),this.renderRequested=!1,this.lastRenderAt=N1.now(),this.doRender()})}cancelRenderTimer(){if(!this.renderTimer)return;clearTimeout(this.renderTimer),this.renderTimer=void 0}scheduleRender(){if(this.stopped||this.renderTimer||!this.renderRequested)return;let $=N1.now()-this.lastRenderAt,J=Math.max(0,g0.MIN_RENDER_INTERVAL_MS-$);this.renderTimer=setTimeout(()=>{if(this.renderTimer=void 0,this.stopped||!this.renderRequested)return;if(this.renderRequested=!1,this.lastRenderAt=N1.now(),this.doRender(),this.renderRequested)this.scheduleRender()},J)}handleTerminalInput($){if(this.consumeOsc11BackgroundResponse($))return;if(this.consumeTerminalColorSchemeReport($))return;if(this.inputListeners.size>0){let Y=$;for(let X of this.inputListeners){let G=X(Y);if(G?.consume)return;if(G?.data!==void 0)Y=G.data}if(Y.length===0)return;$=Y}if(this.consumeCellSizeResponse($))return;if(d($,"shift+ctrl+d")&&this.onDebug){this.onDebug();return}let J=this.overlayStack.find((Y)=>Y.component===this.focusedComponent);if(J&&!this.isOverlayVisible(J)){let Y=this.getTopmostVisibleOverlay();if(Y)this.setFocus(Y.component);else this.setFocusInternal({component:J.preFocus,overlayFocusRestore:"preserve"})}if(!this.overlayStack.some((Y)=>Y.component===this.focusedComponent)){let Y=this.getVisibleOverlayFocusRestore();if(Y.status==="eligible")this.setFocus(Y.overlay.component);else if(Y.status==="blocked"&&Y.blockedBy!==this.focusedComponent)if(Y.resume.status==="restore-overlay")this.setFocus(Y.overlay.component);else this.clearOverlayFocusRestore(),this.setFocus(Y.resume.target)}if(this.focusedComponent?.handleInput){if(n0($)&&!this.focusedComponent.wantsKeyRelease)return;this.focusedComponent.handleInput($),this.requestImmediateRender()}}consumeOsc11BackgroundResponse($){if(this.pendingOsc11BackgroundReplies<=0)return!1;if(!z8($))return!1;let J=o1($);this.pendingOsc11BackgroundReplies-=1;let Z=this.pendingOsc11BackgroundQueries.shift();if(Z&&!Z.settled){if(Z.settled=!0,Z.timer)clearTimeout(Z.timer),Z.timer=void 0;Z.resolve?.(J),Z.resolve=void 0}return!0}consumeTerminalColorSchemeReport($){let J=s1($);if(!J)return!1;for(let Z of this.terminalColorSchemeListeners)Z(J);return!0}consumeCellSizeResponse($){let J=$.match(/^\x1b\[6;(\d+);(\d+)t$/);if(!J)return!1;let Z=parseInt(J[1],10),Y=parseInt(J[2],10);if(Z<=0||Y<=0)return!0;return a1({widthPx:Y,heightPx:Z}),this.invalidate(),this.requestRender(),!0}resolveOverlayLayout($,J,Z,Y){let X=$??{},G=typeof X.margin==="number"?{top:X.margin,right:X.margin,bottom:X.margin,left:X.margin}:X.margin??{},j=Math.max(0,G.top??0),U=Math.max(0,G.right??0),Q=Math.max(0,G.bottom??0),z=Math.max(0,G.left??0),K=Math.max(1,Z-z-U),N=Math.max(1,Y-j-Q),_=q8(X.width,Z)??Math.min(80,K);if(X.minWidth!==void 0)_=Math.max(_,X.minWidth);_=Math.max(1,Math.min(_,K));let B=q8(X.maxHeight,Y);if(B!==void 0)B=Math.max(1,Math.min(B,N));let H=B!==void 0?Math.min(J,B):J,q,A;if(X.row!==void 0)if(typeof X.row==="string"){let O=X.row.match(/^(\d+(?:\.\d+)?)%$/);if(O){let P=Math.max(0,N-H),E=parseFloat(O[1])/100;q=j+Math.floor(P*E)}else q=this.resolveAnchorRow("center",H,N,j)}else q=X.row;else{let O=X.anchor??"center";q=this.resolveAnchorRow(O,H,N,j)}if(X.col!==void 0)if(typeof X.col==="string"){let O=X.col.match(/^(\d+(?:\.\d+)?)%$/);if(O){let P=Math.max(0,K-_),E=parseFloat(O[1])/100;A=z+Math.floor(P*E)}else A=this.resolveAnchorCol("center",_,K,z)}else A=X.col;else{let O=X.anchor??"center";A=this.resolveAnchorCol(O,_,K,z)}if(X.offsetY!==void 0)q+=X.offsetY;if(X.offsetX!==void 0)A+=X.offsetX;return q=Math.max(j,Math.min(q,Y-Q-H)),A=Math.max(z,Math.min(A,Z-U-_)),{width:_,row:q,col:A,maxHeight:B}}resolveAnchorRow($,J,Z,Y){switch($){case"top-left":case"top-center":case"top-right":return Y;case"bottom-left":case"bottom-center":case"bottom-right":return Y+Z-J;case"left-center":case"center":case"right-center":return Y+Math.floor((Z-J)/2)}}resolveAnchorCol($,J,Z,Y){switch($){case"top-left":case"left-center":case"bottom-left":return Y;case"top-right":case"right-center":case"bottom-right":return Y+Z-J;case"top-center":case"center":case"bottom-center":return Y+Math.floor((Z-J)/2)}}compositeOverlays($,J,Z){if(this.overlayStack.length===0)return $;let Y=[...$],X=[],G=Y.length,j=this.overlayStack.filter((z)=>this.isOverlayVisible(z));j.sort((z,K)=>z.focusOrder-K.focusOrder);for(let z of j){let{component:K,options:N}=z,{width:_,maxHeight:B}=this.resolveOverlayLayout(N,0,J,Z),H=K.render(_);if(B!==void 0&&H.length>B)H=H.slice(0,B);let{row:q,col:A}=this.resolveOverlayLayout(N,H.length,J,Z);X.push({overlayLines:H,row:q,col:A,w:_}),G=Math.max(G,q+H.length)}let U=Math.max(Y.length,Z,G);while(Y.length<U)Y.push("");let Q=Math.max(0,U-Z);for(let{overlayLines:z,row:K,col:N,w:_}of X)for(let B=0;B<z.length;B++){let H=Q+K+B;if(H>=0&&H<Y.length){let q=M(z[B])>_?t(z[B],0,_,!0):z[B];Y[H]=this.compositeLineAt(Y[H],q,N,_,J)}}return Y}applyLineResets($){let J=e1;for(let Z=0;Z<$.length;Z++){let Y=$[Z];if(!s(Y))$[Z]=t$(Y)+J}return $}compositeLineAt($,J,Z,Y,X){return f0($,J,Z,Y,X)}extractCursorPosition($,J){let Z=Math.max(0,$.length-J);for(let Y=$.length-1;Y>=Z;Y--){let X=$[Y],G=X.indexOf(j0);if(G!==-1){let j=X.slice(0,G),U=M(j);return $[Y]=X.slice(0,G)+X.slice(G+j0.length),{row:Y,col:U}}}return null}queryTerminalBackgroundColor({timeoutMs:$}){return new Promise((J)=>{let Z={settled:!1,resolve:J,timer:void 0};Z.timer=setTimeout(()=>{if(Z.settled)return;Z.settled=!0,Z.timer=void 0,Z.resolve?.(void 0),Z.resolve=void 0},$),this.pendingOsc11BackgroundQueries.push(Z),this.pendingOsc11BackgroundReplies+=1,this.terminal.write("\x1B]11;?\x07")})}queryTerminalColorScheme({timeoutMs:$}){return new Promise((J)=>{let Z=!1,Y,X=()=>{},G=(j)=>{if(Z)return;if(Z=!0,Y)clearTimeout(Y),Y=void 0;X(),J(j)};X=this.onTerminalColorSchemeChange(G),Y=setTimeout(()=>G(void 0),$),this.terminal.write("\x1B[?996n")})}}});class x0{stack=[];push($){this.stack.push(structuredClone($))}pop(){return this.stack.pop()}clear(){this.stack.length=0}get length(){return this.stack.length}}var $$=()=>{};function _1($,J,Z){if(J<=0)return 0;let Y=$.slice(0,J),X=Z?.segment,G=Z?.isAtomicSegment,j=X?[...X(Y)]:[...V8.segment(Y)],U=J;while(j.length>0&&!G?.(j[j.length-1]?.segment||"")&&o(j[j.length-1]?.segment||""))U-=j.pop()?.segment.length||0;if(j.length===0)return U;let Q=j[j.length-1];if(G?.(Q.segment))U-=Q.segment.length;else if(Q.isWordLike){let z=Q.segment,K=[...z.matchAll(new RegExp(x1,"g"))];if(K.length<=0)U-=z.length;else{let N=K[K.length-1];U-=z.length-(N.index+N[0].length)}}else while(j.length>0&&!G?.(j[j.length-1]?.segment||"")&&!j[j.length-1]?.isWordLike&&!o(j[j.length-1]?.segment||""))U-=j.pop()?.segment.length||0;return U}function H1($,J,Z){if(J>=$.length)return $.length;let Y=$.slice(J),X=Z?.segment,G=Z?.isAtomicSegment,U=(X?X(Y):V8.segment(Y))[Symbol.iterator](),Q=U.next(),z=J;while(!Q.done&&!G?.(Q.value.segment)&&o(Q.value.segment))z+=Q.value.segment.length,Q=U.next();if(Q.done)return z;if(G?.(Q.value.segment))z+=Q.value.segment.length;else if(Q.value.isWordLike)z+=x1.exec(Q.value.segment)?.index??Q.value.segment.length;else while(!Q.done&&!G?.(Q.value.segment)&&!Q.value.isWordLike&&!o(Q.value.segment))z+=Q.value.segment.length,Q=U.next();return z}var V8;var J$=T(()=>{g();V8=P0()});class H0{items=[];filteredItems=[];selectedIndex=0;maxVisible=5;theme;layout;onSelect;onCancel;onSelectionChange;constructor($,J,Z,Y={}){this.items=$,this.filteredItems=$,this.maxVisible=J,this.theme=Z,this.layout=Y}setFilter($){this.filteredItems=this.items.filter((J)=>J.value.toLowerCase().startsWith($.toLowerCase())),this.selectedIndex=0}setSelectedIndex($){this.selectedIndex=Math.max(0,Math.min($,this.filteredItems.length-1))}invalidate(){}render($){let J=[];if(this.filteredItems.length===0)return J.push(this.theme.noMatch(" No matching commands")),J;let Z=this.getPrimaryColumnWidth(),Y=Math.max(0,Math.min(this.selectedIndex-Math.floor(this.maxVisible/2),this.filteredItems.length-this.maxVisible)),X=Math.min(Y+this.maxVisible,this.filteredItems.length);for(let G=Y;G<X;G++){let j=this.filteredItems[G];if(!j)continue;let U=G===this.selectedIndex,Q=j.description?u2(j.description):void 0;J.push(this.renderItem(j,U,$,Q,Z))}if(Y>0||X<this.filteredItems.length){let G=` (${this.selectedIndex+1}/${this.filteredItems.length})`;J.push(this.theme.scrollInfo(m(G,$-2,"")))}return J}handleInput($){let J=e();if(J.matches($,"tui.select.up"))this.selectedIndex=this.selectedIndex===0?this.filteredItems.length-1:this.selectedIndex-1,this.notifySelectionChange();else if(J.matches($,"tui.select.down"))this.selectedIndex=this.selectedIndex===this.filteredItems.length-1?0:this.selectedIndex+1,this.notifySelectionChange();else if(J.matches($,"tui.select.confirm")){let Z=this.filteredItems[this.selectedIndex];if(Z&&this.onSelect)this.onSelect(Z)}else if(J.matches($,"tui.select.cancel")){if(this.onCancel)this.onCancel()}}renderItem($,J,Z,Y,X){let G=J?"\u2192 ":" ",j=M(G);if(Y&&Z>40){let z=Math.max(1,Math.min(X,Z-j-4)),K=Math.max(1,z-M8),N=this.truncatePrimary($,J,K,z),_=M(N),B=" ".repeat(Math.max(1,z-_)),H=j+_+B.length,q=Z-H-2;if(q>p2){let A=m(Y,q,"");if(J)return this.theme.selectedText(`${G}${N}${B}${A}`);let O=this.theme.description(B+A);return G+N+O}}let U=Z-j-2,Q=this.truncatePrimary($,J,U,U);if(J)return this.theme.selectedText(`${G}${Q}`);return G+Q}getPrimaryColumnWidth(){let{min:$,max:J}=this.getPrimaryColumnBounds(),Z=this.filteredItems.reduce((Y,X)=>{return Math.max(Y,M(this.getDisplayValue(X))+M8)},0);return m2(Z,$,J)}getPrimaryColumnBounds(){let $=this.layout.minPrimaryColumnWidth??this.layout.maxPrimaryColumnWidth??F8,J=this.layout.maxPrimaryColumnWidth??this.layout.minPrimaryColumnWidth??F8;return{min:Math.max(1,Math.min($,J)),max:Math.max(1,Math.max($,J))}}truncatePrimary($,J,Z,Y){let X=this.getDisplayValue($),G=this.layout.truncatePrimary?this.layout.truncatePrimary({text:X,maxWidth:Z,columnWidth:Y,item:$,isSelected:J}):m(X,Z,"");return m(G,Z,"")}getDisplayValue($){return $.label||$.value}notifySelectionChange(){let $=this.filteredItems[this.selectedIndex];if($&&this.onSelectionChange)this.onSelectionChange($)}getSelectedItem(){return this.filteredItems[this.selectedIndex]||null}}var F8=32,M8=2,p2=10,u2=($)=>$.replace(/[\r\n]+/g," ").trim(),m2=($,J,Z)=>Math.max(J,Math.min($,Z));var Z$=T(()=>{N0();g()});function I0($){return $.length>=10&&I8.test($)}function c2($,J,Z){if(Z.size===0||!$.includes("[paste #"))return J.segment($);let Y=[];for(let U of $.matchAll(T8)){let Q=Number.parseInt(U[1],10);if(!Z.has(Q))continue;Y.push({start:U.index,end:U.index+U[0].length})}if(Y.length===0)return J.segment($);let X=J.segment($),G=[],j=0;for(let U of X){while(j<Y.length&&Y[j].end<=U.index)j++;let Q=j<Y.length?Y[j]:null;if(Q&&U.index>=Q.start&&U.index<Q.end){if(U.index===Q.start){let z=$.slice(Q.start,Q.end);G.push({segment:z,index:Q.start,input:$})}}else G.push(U)}return G}function Y$($,J,Z){if(!$||J<=0)return[{text:"",startIndex:0,endIndex:0}];if(M($)<=J)return[{text:$,startIndex:0,endIndex:$.length}];let X=[],G=Z??[...R8.segment($)],j=0,U=0,Q=-1,z=0;for(let K=0;K<G.length;K++){let N=G[K],_=N.segment,B=M(_),H=N.index,q=!I0(_)&&o(_);if(j+B>J){if(Q>=0&&j-z+B<=J)X.push({text:$.slice(U,Q),startIndex:U,endIndex:Q}),U=Q,j-=z;else if(U<H)X.push({text:$.slice(U,H),startIndex:U,endIndex:H}),U=H,j=0;Q=-1}if(B>J){let O=Y$(_,J);for(let E=0;E<O.length-1;E++){let C=O[E];X.push({text:C.text,startIndex:H+C.startIndex,endIndex:H+C.endIndex})}let P=O[O.length-1];U=H+P.startIndex,j=M(P.text),Q=-1;continue}j+=B;let A=G[K+1];if(q&&A&&(I0(A.segment)||!o(A.segment)))Q=A.index,z=j;else if(!q&&A&&!o(A.segment)){let O=!I0(_)&&j1.test(_),P=!I0(A.segment)&&j1.test(A.segment);if(O||P)Q=A.index,z=j}}return X.push({text:$.slice(U),startIndex:U,endIndex:$.length}),X}function W8($){return $.replace(/[\\^$.*+?()[\]{}|-]/g,"\\$&")}function D8($){return new RegExp(`(?:^|[\\s])[${$.map(W8).join("")}][^\\s]*$`)}function S8($){let J=$.filter((Z)=>Z!=="@").map(W8);return new RegExp(`(?:^|[ \\t])(?:@(?:"[^"]*|[^\\s]*)|[${J.join("")}][^\\s]*)$`)}function P8($,J,Z){let Y=Math.max(0,Z),X=`\u2500\u2500\u2500 ${$} ${J} more `,G=Y-M(X);if(G>=0)return X+"\u2500".repeat(G);let j="...".slice(0,Y),U=Y-M(j);return t(X,0,U,!0)+j}class B1{state={lines:[""],cursorLine:0,cursorCol:0};focused=!1;tui;theme;paddingX=0;lastWidth=80;scrollOffset=0;borderColor;autocompleteProvider;autocompleteTriggerCharacters=[...E8];autocompleteTriggerPattern=D8(this.autocompleteTriggerCharacters);autocompleteDebouncePattern=S8(this.autocompleteTriggerCharacters);autocompleteList;autocompleteState=null;autocompletePrefix="";autocompleteMaxVisible=5;autocompleteAbort;autocompleteDebounceTimer;autocompleteRequestTask=Promise.resolve();autocompleteStartToken=0;autocompleteRequestId=0;pastes=new Map;pasteCounter=0;pasteBuffer="";isInPaste=!1;history=[];historyIndex=-1;historyDraft=null;killRing=new w0;lastAction=null;jumpMode=null;preferredVisualCol=null;snappedFromCursorCol=null;undoStack=new x0;onSubmit;onChange;disableSubmit=!1;constructor($,J,Z={}){this.tui=$,this.theme=J,this.borderColor=J.borderColor;let Y=Z.paddingX??0;this.paddingX=Number.isFinite(Y)?Math.max(0,Math.floor(Y)):0;let X=Z.autocompleteMaxVisible??5;this.autocompleteMaxVisible=Number.isFinite(X)?Math.max(3,Math.min(20,Math.floor(X))):5}validPasteIds(){return new Set(this.pastes.keys())}segment($,J){return c2($,J==="word"?h2:R8,this.validPasteIds())}getPaddingX(){return this.paddingX}setPaddingX($){let J=Number.isFinite($)?Math.max(0,Math.floor($)):0;if(this.paddingX!==J)this.paddingX=J,this.tui.requestRender()}getAutocompleteMaxVisible(){return this.autocompleteMaxVisible}setAutocompleteMaxVisible($){let J=Number.isFinite($)?Math.max(3,Math.min(20,Math.floor($))):5;if(this.autocompleteMaxVisible!==J)this.autocompleteMaxVisible=J,this.tui.requestRender()}setAutocompleteProvider($){this.cancelAutocomplete(),this.autocompleteProvider=$,this.setAutocompleteTriggerCharacters($.triggerCharacters??[])}addToHistory($){let J=$.trim();if(!J)return;if(this.history.length>0&&this.history[0]===J)return;if(this.history.unshift(J),this.history.length>100)this.history.pop()}isEditorEmpty(){return this.state.lines.length===1&&this.state.lines[0]===""}isOnFirstVisualLine(){let $=this.buildVisualLineMap(this.lastWidth);return this.findCurrentVisualLine($)===0}isOnLastVisualLine(){let $=this.buildVisualLineMap(this.lastWidth);return this.findCurrentVisualLine($)===$.length-1}navigateHistory($){if(this.lastAction=null,this.history.length===0)return;let J=this.historyIndex-$;if(J<-1||J>=this.history.length)return;if(this.historyIndex===-1&&J>=0)this.pushUndoSnapshot(),this.historyDraft=structuredClone(this.state);if(this.historyIndex=J,this.historyIndex===-1){let Z=this.historyDraft;if(this.historyDraft=null,Z){if(this.state=Z,this.preferredVisualCol=null,this.snappedFromCursorCol=null,this.scrollOffset=0,this.onChange)this.onChange(this.getText())}else this.setTextInternal("")}else this.setTextInternal(this.history[this.historyIndex]||"",$===-1?"start":"end")}exitHistoryBrowsing(){this.historyIndex=-1,this.historyDraft=null}setTextInternal($,J="end"){let Z=$.split(`
|
|
9
|
+
`);if(this.state.lines=Z.length===0?[""]:Z,this.state.cursorLine=J==="start"?0:this.state.lines.length-1,this.setCursorCol(J==="start"?0:this.state.lines[this.state.cursorLine]?.length||0),this.scrollOffset=0,this.onChange)this.onChange(this.getText())}invalidate(){}render($){let J=Math.max(0,Math.floor(($-1)/2)),Z=Math.min(this.paddingX,J),Y=Math.max(1,$-Z*2),X=Math.max(1,Y-(Z?0:1));this.lastWidth=X;let G=this.borderColor("\u2500"),j=this.layoutText(X),U=this.tui.terminal.rows,Q=Math.max(5,Math.floor(U*0.3)),z=j.findIndex((O)=>O.hasCursor);if(z===-1)z=0;if(z<this.scrollOffset)this.scrollOffset=z;else if(z>=this.scrollOffset+Q)this.scrollOffset=z-Q+1;let K=Math.max(0,j.length-Q);this.scrollOffset=Math.max(0,Math.min(this.scrollOffset,K));let N=j.slice(this.scrollOffset,this.scrollOffset+Q),_=[],B=" ".repeat(Z),H=B;if(this.scrollOffset>0){let O=P8("\u2191",this.scrollOffset,$);_.push(this.borderColor(O))}else _.push(G.repeat($));let q=this.focused;for(let O of N){let P=O.text,E=M(O.text),C=!1;if(O.hasCursor&&O.cursorPos!==void 0){let k=P.slice(0,O.cursorPos),f=P.slice(O.cursorPos),F=q?j0:"";if(f.length>0){let L=[...this.segment(f,"grapheme")][0]?.segment||"",b=f.slice(L.length),w=`\x1B[7m${L}\x1B[0m`;P=k+F+w+b}else if(P=k+F+"\x1B[7m \x1B[0m",E=E+1,E>Y&&Z>0)C=!0}let S=" ".repeat(Math.max(0,Y-E)),I=C?H.slice(1):H;_.push(`${B}${P}${S}${I}`)}let A=j.length-(this.scrollOffset+N.length);if(A>0){let O=P8("\u2193",A,$);_.push(this.borderColor(O))}else _.push(G.repeat($));if(this.autocompleteState&&this.autocompleteList){let O=this.autocompleteList.render(Y);for(let P of O){let E=M(P),C=" ".repeat(Math.max(0,Y-E));_.push(`${B}${P}${C}${H}`)}}return _}handleInput($){let J=e();if(this.jumpMode!==null){if(J.matches($,"tui.editor.jumpForward")||J.matches($,"tui.editor.jumpBackward")){this.jumpMode=null;return}let Y=T1($)??($.charCodeAt(0)>=32?$:void 0);if(Y!==void 0){let X=this.jumpMode;this.jumpMode=null,this.jumpToChar(Y,X);return}this.jumpMode=null}if($.includes("\x1B[200~"))this.isInPaste=!0,this.pasteBuffer="",$=$.replace("\x1B[200~","");if(this.isInPaste){this.pasteBuffer+=$;let Y=this.pasteBuffer.indexOf("\x1B[201~");if(Y!==-1){let X=this.pasteBuffer.substring(0,Y);if(X.length>0)this.handlePaste(X);this.isInPaste=!1;let G=this.pasteBuffer.substring(Y+6);if(this.pasteBuffer="",G.length>0)this.handleInput(G);return}return}if(J.matches($,"tui.input.copy"))return;if(J.matches($,"tui.editor.undo")){this.undo();return}if(this.autocompleteState&&this.autocompleteList){if(J.matches($,"tui.select.cancel")){this.cancelAutocomplete();return}if(J.matches($,"tui.select.up")||J.matches($,"tui.select.down")){this.autocompleteList.handleInput($);return}if(J.matches($,"tui.input.tab")){let Y=this.autocompleteList.getSelectedItem();if(Y&&this.autocompleteProvider){this.pushUndoSnapshot(),this.lastAction=null;let X=this.autocompleteProvider.applyCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol,Y,this.autocompletePrefix);if(this.state.lines=X.lines,this.state.cursorLine=X.cursorLine,this.setCursorCol(X.cursorCol),this.cancelAutocomplete(),this.onChange)this.onChange(this.getText())}return}if(J.matches($,"tui.select.confirm")){let Y=this.autocompleteList.getSelectedItem();if(Y&&this.autocompleteProvider){this.pushUndoSnapshot(),this.lastAction=null;let X=this.autocompleteProvider.applyCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol,Y,this.autocompletePrefix);if(this.state.lines=X.lines,this.state.cursorLine=X.cursorLine,this.setCursorCol(X.cursorCol),this.autocompletePrefix.startsWith("/"))this.cancelAutocomplete();else{if(this.cancelAutocomplete(),this.onChange)this.onChange(this.getText());return}}}}if(J.matches($,"tui.input.tab")&&!this.autocompleteState){this.handleTabCompletion();return}if(J.matches($,"tui.editor.deleteToLineEnd")){this.deleteToEndOfLine();return}if(J.matches($,"tui.editor.deleteToLineStart")){this.deleteToStartOfLine();return}if(J.matches($,"tui.editor.deleteWordBackward")){this.deleteWordBackwards();return}if(J.matches($,"tui.editor.deleteWordForward")){this.deleteWordForward();return}if(J.matches($,"tui.editor.deleteCharBackward")||d($,"shift+backspace")){this.handleBackspace();return}if(J.matches($,"tui.editor.deleteCharForward")||d($,"shift+delete")){this.handleForwardDelete();return}if(J.matches($,"tui.editor.yank")){this.yank();return}if(J.matches($,"tui.editor.yankPop")){this.yankPop();return}if(J.matches($,"tui.editor.historyPrevious")){this.cancelAutocomplete(),this.navigateHistory(-1);return}if(J.matches($,"tui.editor.historyNext")){this.cancelAutocomplete(),this.navigateHistory(1);return}if(J.matches($,"tui.editor.cursorLineStart")){this.moveToLineStart();return}if(J.matches($,"tui.editor.cursorLineEnd")){this.moveToLineEnd();return}if(J.matches($,"tui.editor.cursorWordLeft")){this.moveWordBackwards();return}if(J.matches($,"tui.editor.cursorWordRight")){this.moveWordForwards();return}if(J.matches($,"tui.input.newLine")||$.charCodeAt(0)===10&&$.length>1||$==="\x1B\r"||$==="\x1B[13;2~"||$.length>1&&$.includes("\x1B")&&$.includes("\r")||$===`
|
|
10
|
+
`&&$.length===1){if(this.shouldSubmitOnBackslashEnter($,J)){this.handleBackspace(),this.submitValue();return}this.addNewLine();return}if(J.matches($,"tui.input.submit")){if(this.disableSubmit)return;let Y=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>0&&Y[this.state.cursorCol-1]==="\\"){this.handleBackspace(),this.addNewLine();return}this.submitValue();return}if(J.matches($,"tui.editor.cursorUp")){if(this.isOnFirstVisualLine()&&(this.isEditorEmpty()||this.historyIndex>-1||this.state.cursorCol===0))this.navigateHistory(-1);else if(this.isOnFirstVisualLine())this.moveToLineStart();else this.moveCursor(-1,0);return}if(J.matches($,"tui.editor.cursorDown")){if(this.historyIndex>-1&&this.isOnLastVisualLine())this.navigateHistory(1);else if(this.isOnLastVisualLine())this.moveToLineEnd();else this.moveCursor(1,0);return}if(J.matches($,"tui.editor.cursorRight")){this.moveCursor(0,1);return}if(J.matches($,"tui.editor.cursorLeft")){this.moveCursor(0,-1);return}if(J.matches($,"tui.editor.pageUp")){this.pageScroll(-1);return}if(J.matches($,"tui.editor.pageDown")){this.pageScroll(1);return}if(J.matches($,"tui.editor.jumpForward")){this.jumpMode="forward";return}if(J.matches($,"tui.editor.jumpBackward")){this.jumpMode="backward";return}if(d($,"shift+space")){this.insertCharacter(" ");return}let Z=T1($);if(Z!==void 0){this.insertCharacter(Z);return}if($.charCodeAt(0)>=32)this.insertCharacter($)}layoutText($){let J=[];if(this.state.lines.length===0||this.state.lines.length===1&&this.state.lines[0]==="")return J.push({text:"",hasCursor:!0,cursorPos:0}),J;for(let Z=0;Z<this.state.lines.length;Z++){let Y=this.state.lines[Z]||"",X=Z===this.state.cursorLine;if(M(Y)<=$)if(X)J.push({text:Y,hasCursor:!0,cursorPos:this.state.cursorCol});else J.push({text:Y,hasCursor:!1});else{let j=Y$(Y,$,[...this.segment(Y,"grapheme")]);for(let U=0;U<j.length;U++){let Q=j[U];if(!Q)continue;let z=this.state.cursorCol,K=U===j.length-1,N=!1,_=0;if(X){if(K)N=z>=Q.startIndex,_=z-Q.startIndex;else if(N=z>=Q.startIndex&&z<Q.endIndex,N){if(_=z-Q.startIndex,_>Q.text.length)_=Q.text.length}}if(N)J.push({text:Q.text,hasCursor:!0,cursorPos:_});else J.push({text:Q.text,hasCursor:!1})}}}return J}getText(){return this.state.lines.join(`
|
|
11
|
+
`)}expandPasteMarkers($){let J=$;for(let[Z,Y]of this.pastes){let X=new RegExp(`\\[paste #${Z}( (\\+\\d+ lines|\\d+ chars))?\\]`,"g");J=J.replace(X,()=>Y)}return J}getExpandedText(){return this.expandPasteMarkers(this.state.lines.join(`
|
|
12
|
+
`))}getLines(){return[...this.state.lines]}getCursor(){return{line:this.state.cursorLine,col:this.state.cursorCol}}setText($){this.cancelAutocomplete(),this.lastAction=null,this.exitHistoryBrowsing();let J=this.normalizeText($);if(this.getText()!==J)this.pushUndoSnapshot();this.pastes.clear(),this.pasteCounter=0,this.setTextInternal(J)}insertTextAtCursor($){if(!$)return;this.cancelAutocomplete(),this.pushUndoSnapshot(),this.lastAction=null,this.exitHistoryBrowsing(),this.insertTextAtCursorInternal($)}normalizeText($){return $.replace(/\r\n/g,`
|
|
13
|
+
`).replace(/\r/g,`
|
|
14
|
+
`).replace(/\t/g," ")}insertTextAtCursorInternal($){if(!$)return;let J=this.normalizeText($),Z=J.split(`
|
|
15
|
+
`),Y=this.state.lines[this.state.cursorLine]||"",X=Y.slice(0,this.state.cursorCol),G=Y.slice(this.state.cursorCol);if(Z.length===1)this.state.lines[this.state.cursorLine]=X+J+G,this.setCursorCol(this.state.cursorCol+J.length);else this.state.lines=[...this.state.lines.slice(0,this.state.cursorLine),X+Z[0],...Z.slice(1,-1),Z[Z.length-1]+G,...this.state.lines.slice(this.state.cursorLine+1)],this.state.cursorLine+=Z.length-1,this.setCursorCol((Z[Z.length-1]||"").length);if(this.onChange)this.onChange(this.getText())}insertCharacter($,J){if(this.exitHistoryBrowsing(),!J){if(o($)||this.lastAction!=="type-word")this.pushUndoSnapshot();this.lastAction="type-word"}let Z=this.state.lines[this.state.cursorLine]||"",Y=Z.slice(0,this.state.cursorCol),X=Z.slice(this.state.cursorCol);if(this.state.lines[this.state.cursorLine]=Y+$+X,this.setCursorCol(this.state.cursorCol+$.length),this.onChange)this.onChange(this.getText());if(!this.autocompleteState){if($==="/"&&this.isAtStartOfMessage())this.tryTriggerAutocomplete();else if(this.autocompleteTriggerCharacters.includes($)){let j=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol),U=j[j.length-2];if(j.length===1||U===" "||U==="\t")this.tryTriggerAutocomplete()}else if(/[a-zA-Z0-9.\-_]/.test($)){let j=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);if(this.isInSlashCommandContext(j))this.tryTriggerAutocomplete();else if(this.autocompleteTriggerPattern.test(j))this.tryTriggerAutocomplete()}}else this.updateAutocomplete()}handlePaste($){this.cancelAutocomplete(),this.exitHistoryBrowsing(),this.lastAction=null,this.pushUndoSnapshot();let J=$.replace(/\x1b\[(\d+);5u/g,(j,U)=>{let Q=Number(U);if(Q>=97&&Q<=122)return String.fromCharCode(Q-96);if(Q>=65&&Q<=90)return String.fromCharCode(Q-64);return j}),Y=this.normalizeText(J).split("").filter((j)=>j===`
|
|
16
|
+
`||j.charCodeAt(0)>=32).join("");if(/^[/~.]/.test(Y)){let j=this.state.lines[this.state.cursorLine]||"",U=this.state.cursorCol>0?j[this.state.cursorCol-1]:"";if(U&&/\w/.test(U))Y=` ${Y}`}let X=Y.split(`
|
|
17
|
+
`),G=Y.length;if(X.length>10||G>1000){this.pasteCounter++;let j=this.pasteCounter;this.pastes.set(j,Y);let U=X.length>10?`[paste #${j} +${X.length} lines]`:`[paste #${j} ${G} chars]`;this.insertTextAtCursorInternal(U);return}if(X.length===1){this.insertTextAtCursorInternal(Y);return}this.insertTextAtCursorInternal(Y)}addNewLine(){this.cancelAutocomplete(),this.exitHistoryBrowsing(),this.lastAction=null,this.pushUndoSnapshot();let $=this.state.lines[this.state.cursorLine]||"",J=$.slice(0,this.state.cursorCol),Z=$.slice(this.state.cursorCol);if(this.state.lines[this.state.cursorLine]=J,this.state.lines.splice(this.state.cursorLine+1,0,Z),this.state.cursorLine++,this.setCursorCol(0),this.onChange)this.onChange(this.getText())}shouldSubmitOnBackslashEnter($,J){if(this.disableSubmit)return!1;if(!d($,"enter"))return!1;let Z=J.getKeys("tui.input.submit");if(!(Z.includes("shift+enter")||Z.includes("shift+return")))return!1;let X=this.state.lines[this.state.cursorLine]||"";return this.state.cursorCol>0&&X[this.state.cursorCol-1]==="\\"}submitValue(){this.cancelAutocomplete();let $=this.expandPasteMarkers(this.state.lines.join(`
|
|
18
|
+
`)).trim();if(this.state={lines:[""],cursorLine:0,cursorCol:0},this.pastes.clear(),this.pasteCounter=0,this.exitHistoryBrowsing(),this.scrollOffset=0,this.undoStack.clear(),this.lastAction=null,this.onChange)this.onChange("");if(this.onSubmit)this.onSubmit($)}handleBackspace(){if(this.exitHistoryBrowsing(),this.lastAction=null,this.state.cursorCol>0){this.pushUndoSnapshot();let $=this.state.lines[this.state.cursorLine]||"",J=$.slice(0,this.state.cursorCol),Z=[...this.segment(J,"grapheme")],Y=Z[Z.length-1],X=Y?Y.segment.length:1,G=I8.exec(Y.segment);if(G){let Q=Number(G[1]);this.pastes.delete(Q),this.pasteCounter--;let z=[...this.pastes.keys()].filter((K)=>K>Q).sort((K,N)=>K-N);for(let K of z)this.pastes.set(K-1,this.pastes.get(K)),this.pastes.delete(K);this.state.lines=this.state.lines.map((K)=>K.replace(T8,(N,_,B)=>{let H=Number(_);if(H<=Q)return N;return`[paste #${H-1}${B}]`}))}$=this.state.lines[this.state.cursorLine]||"";let j=$.slice(0,this.state.cursorCol-X),U=$.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=j+U,this.setCursorCol(this.state.cursorCol-X)}else if(this.state.cursorLine>0){this.pushUndoSnapshot();let $=this.state.lines[this.state.cursorLine]||"",J=this.state.lines[this.state.cursorLine-1]||"";this.state.lines[this.state.cursorLine-1]=J+$,this.state.lines.splice(this.state.cursorLine,1),this.state.cursorLine--,this.setCursorCol(J.length)}if(this.onChange)this.onChange(this.getText());if(this.autocompleteState)this.updateAutocomplete();else{let J=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);if(this.isInSlashCommandContext(J))this.tryTriggerAutocomplete();else if(this.autocompleteTriggerPattern.test(J))this.tryTriggerAutocomplete()}}setCursorCol($){this.state.cursorCol=$,this.preferredVisualCol=null,this.snappedFromCursorCol=null}moveToVisualLine($,J,Z){let Y=$[J],X=$[Z];if(!(Y&&X))return;let G;if(this.snappedFromCursorCol!==null){let H=this.findVisualLineAt($,Y.logicalLine,this.snappedFromCursorCol);G=this.snappedFromCursorCol-$[H].startCol}else G=this.state.cursorCol-Y.startCol;let U=J===$.length-1||$[J+1]?.logicalLine!==Y.logicalLine?Y.length:Math.max(0,Y.length-1),z=Z===$.length-1||$[Z+1]?.logicalLine!==X.logicalLine?X.length:Math.max(0,X.length-1),K=this.computeVerticalMoveColumn(G,U,z);this.state.cursorLine=X.logicalLine;let N=X.startCol+K,_=this.state.lines[X.logicalLine]||"";this.state.cursorCol=Math.min(N,_.length);let B=[...this.segment(_,"grapheme")];for(let H of B){if(H.index>this.state.cursorCol)break;if(H.segment.length<=1)continue;if(this.state.cursorCol<H.index+H.segment.length){let q=H.index<X.startCol,A=Z>J;if(q&&A){let O=H.index+H.segment.length,P=Z+1;while(P<$.length&&$[P].logicalLine===X.logicalLine&&$[P].startCol<O)P++;if(P<$.length){this.moveToVisualLine($,J,P);return}}this.snappedFromCursorCol=this.state.cursorCol,this.state.cursorCol=H.index;return}}this.snappedFromCursorCol=null}computeVerticalMoveColumn($,J,Z){let Y=this.preferredVisualCol!==null,X=$<J,G=Z<$;if(!Y||X){if(G)return this.preferredVisualCol=$,Z;return this.preferredVisualCol=null,$}let j=Z<this.preferredVisualCol;if(G||j)return Z;let U=this.preferredVisualCol;return this.preferredVisualCol=null,U}moveToLineStart(){this.lastAction=null,this.setCursorCol(0)}moveToLineEnd(){this.lastAction=null;let $=this.state.lines[this.state.cursorLine]||"";this.setCursorCol($.length)}deleteToStartOfLine(){this.exitHistoryBrowsing();let $=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>0){this.pushUndoSnapshot();let J=$.slice(0,this.state.cursorCol);this.killRing.push(J,{prepend:!0,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=$.slice(this.state.cursorCol),this.setCursorCol(0)}else if(this.state.cursorLine>0){this.pushUndoSnapshot(),this.killRing.push(`
|
|
19
|
+
`,{prepend:!0,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let J=this.state.lines[this.state.cursorLine-1]||"";this.state.lines[this.state.cursorLine-1]=J+$,this.state.lines.splice(this.state.cursorLine,1),this.state.cursorLine--,this.setCursorCol(J.length)}if(this.onChange)this.onChange(this.getText())}deleteToEndOfLine(){this.exitHistoryBrowsing();let $=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol<$.length){this.pushUndoSnapshot();let J=$.slice(this.state.cursorCol);this.killRing.push(J,{prepend:!1,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=$.slice(0,this.state.cursorCol)}else if(this.state.cursorLine<this.state.lines.length-1){this.pushUndoSnapshot(),this.killRing.push(`
|
|
20
|
+
`,{prepend:!1,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let J=this.state.lines[this.state.cursorLine+1]||"";this.state.lines[this.state.cursorLine]=$+J,this.state.lines.splice(this.state.cursorLine+1,1)}if(this.onChange)this.onChange(this.getText())}deleteWordBackwards(){this.exitHistoryBrowsing();let $=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol===0){if(this.state.cursorLine>0){this.pushUndoSnapshot(),this.killRing.push(`
|
|
21
|
+
`,{prepend:!0,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let J=this.state.lines[this.state.cursorLine-1]||"";this.state.lines[this.state.cursorLine-1]=J+$,this.state.lines.splice(this.state.cursorLine,1),this.state.cursorLine--,this.setCursorCol(J.length)}}else{this.pushUndoSnapshot();let J=this.lastAction==="kill",Z=this.state.cursorCol;this.moveWordBackwards();let Y=this.state.cursorCol;this.setCursorCol(Z);let X=$.slice(Y,this.state.cursorCol);this.killRing.push(X,{prepend:!0,accumulate:J}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=$.slice(0,Y)+$.slice(this.state.cursorCol),this.setCursorCol(Y)}if(this.onChange)this.onChange(this.getText())}deleteWordForward(){this.exitHistoryBrowsing();let $=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>=$.length){if(this.state.cursorLine<this.state.lines.length-1){this.pushUndoSnapshot(),this.killRing.push(`
|
|
22
|
+
`,{prepend:!1,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let J=this.state.lines[this.state.cursorLine+1]||"";this.state.lines[this.state.cursorLine]=$+J,this.state.lines.splice(this.state.cursorLine+1,1)}}else{this.pushUndoSnapshot();let J=this.lastAction==="kill",Z=this.state.cursorCol;this.moveWordForwards();let Y=this.state.cursorCol;this.setCursorCol(Z);let X=$.slice(this.state.cursorCol,Y);this.killRing.push(X,{prepend:!1,accumulate:J}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=$.slice(0,this.state.cursorCol)+$.slice(Y)}if(this.onChange)this.onChange(this.getText())}handleForwardDelete(){this.exitHistoryBrowsing(),this.lastAction=null;let $=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol<$.length){this.pushUndoSnapshot();let J=$.slice(this.state.cursorCol),Y=[...this.segment(J,"grapheme")][0],X=Y?Y.segment.length:1,G=$.slice(0,this.state.cursorCol),j=$.slice(this.state.cursorCol+X);this.state.lines[this.state.cursorLine]=G+j}else if(this.state.cursorLine<this.state.lines.length-1){this.pushUndoSnapshot();let J=this.state.lines[this.state.cursorLine+1]||"";this.state.lines[this.state.cursorLine]=$+J,this.state.lines.splice(this.state.cursorLine+1,1)}if(this.onChange)this.onChange(this.getText());if(this.autocompleteState)this.updateAutocomplete();else{let Z=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);if(this.isInSlashCommandContext(Z))this.tryTriggerAutocomplete();else if(this.autocompleteTriggerPattern.test(Z))this.tryTriggerAutocomplete()}}buildVisualLineMap($){let J=[];for(let Z=0;Z<this.state.lines.length;Z++){let Y=this.state.lines[Z]||"",X=M(Y);if(Y.length===0)J.push({logicalLine:Z,startCol:0,length:0});else if(X<=$)J.push({logicalLine:Z,startCol:0,length:Y.length});else{let G=Y$(Y,$,[...this.segment(Y,"grapheme")]);for(let j of G)J.push({logicalLine:Z,startCol:j.startIndex,length:j.endIndex-j.startIndex})}}return J}findVisualLineAt($,J,Z){for(let Y=0;Y<$.length;Y++){let X=$[Y];if(!X||X.logicalLine!==J)continue;let G=Z-X.startCol,j=Y===$.length-1||$[Y+1]?.logicalLine!==X.logicalLine;if(G>=0&&(G<X.length||j&&G===X.length))return Y}return $.length-1}findCurrentVisualLine($){return this.findVisualLineAt($,this.state.cursorLine,this.state.cursorCol)}moveCursor($,J){this.lastAction=null;let Z=this.buildVisualLineMap(this.lastWidth),Y=this.findCurrentVisualLine(Z);if($!==0){let X=Y+$;if(X>=0&&X<Z.length)this.moveToVisualLine(Z,Y,X)}if(J!==0){let X=this.state.lines[this.state.cursorLine]||"";if(J>0)if(this.state.cursorCol<X.length){let G=X.slice(this.state.cursorCol),U=[...this.segment(G,"grapheme")][0];this.setCursorCol(this.state.cursorCol+(U?U.segment.length:1))}else if(this.state.cursorLine<this.state.lines.length-1)this.state.cursorLine++,this.setCursorCol(0);else{let G=Z[Y];if(G)this.preferredVisualCol=this.state.cursorCol-G.startCol}else if(this.state.cursorCol>0){let G=X.slice(0,this.state.cursorCol),j=[...this.segment(G,"grapheme")],U=j[j.length-1];this.setCursorCol(this.state.cursorCol-(U?U.segment.length:1))}else if(this.state.cursorLine>0){this.state.cursorLine--;let G=this.state.lines[this.state.cursorLine]||"";this.setCursorCol(G.length)}}if(this.autocompleteState)this.updateAutocomplete()}pageScroll($){this.lastAction=null;let J=this.tui.terminal.rows,Z=Math.max(5,Math.floor(J*0.3)),Y=this.buildVisualLineMap(this.lastWidth),X=this.findCurrentVisualLine(Y),G=Math.max(0,Math.min(Y.length-1,X+$*Z));this.moveToVisualLine(Y,X,G)}moveWordBackwards(){this.lastAction=null;let $=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol===0){if(this.state.cursorLine>0){this.state.cursorLine--;let J=this.state.lines[this.state.cursorLine]||"";this.setCursorCol(J.length)}return}this.setCursorCol(_1($,this.state.cursorCol,{segment:(J)=>this.segment(J,"word"),isAtomicSegment:I0}))}yank(){if(this.killRing.length===0)return;this.pushUndoSnapshot();let $=this.killRing.peek();this.insertYankedText($),this.lastAction="yank"}yankPop(){if(this.lastAction!=="yank"||this.killRing.length<=1)return;this.pushUndoSnapshot(),this.deleteYankedText(),this.killRing.rotate();let $=this.killRing.peek();this.insertYankedText($),this.lastAction="yank"}insertYankedText($){this.exitHistoryBrowsing();let J=$.split(`
|
|
23
|
+
`);if(J.length===1){let Z=this.state.lines[this.state.cursorLine]||"",Y=Z.slice(0,this.state.cursorCol),X=Z.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=Y+$+X,this.setCursorCol(this.state.cursorCol+$.length)}else{let Z=this.state.lines[this.state.cursorLine]||"",Y=Z.slice(0,this.state.cursorCol),X=Z.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=Y+(J[0]||"");for(let j=1;j<J.length-1;j++)this.state.lines.splice(this.state.cursorLine+j,0,J[j]||"");let G=this.state.cursorLine+J.length-1;this.state.lines.splice(G,0,(J[J.length-1]||"")+X),this.state.cursorLine=G,this.setCursorCol((J[J.length-1]||"").length)}if(this.onChange)this.onChange(this.getText())}deleteYankedText(){let $=this.killRing.peek();if(!$)return;let J=$.split(`
|
|
24
|
+
`);if(J.length===1){let Z=this.state.lines[this.state.cursorLine]||"",Y=$.length,X=Z.slice(0,this.state.cursorCol-Y),G=Z.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=X+G,this.setCursorCol(this.state.cursorCol-Y)}else{let Z=this.state.cursorLine-(J.length-1),Y=(this.state.lines[Z]||"").length-(J[0]||"").length,X=(this.state.lines[this.state.cursorLine]||"").slice(this.state.cursorCol),G=(this.state.lines[Z]||"").slice(0,Y);this.state.lines.splice(Z,J.length,G+X),this.state.cursorLine=Z,this.setCursorCol(Y)}if(this.onChange)this.onChange(this.getText())}pushUndoSnapshot(){this.undoStack.push({state:this.state,pastes:this.pastes,pasteCounter:this.pasteCounter})}undo(){this.exitHistoryBrowsing();let $=this.undoStack.pop();if(!$)return;if(Object.assign(this.state,$.state),this.pastes=$.pastes,this.pasteCounter=$.pasteCounter,this.lastAction=null,this.preferredVisualCol=null,this.onChange)this.onChange(this.getText())}jumpToChar($,J){this.lastAction=null;let Z=J==="forward",Y=this.state.lines,X=Z?Y.length:-1,G=Z?1:-1;for(let j=this.state.cursorLine;j!==X;j+=G){let U=Y[j]||"",z=j===this.state.cursorLine?Z?this.state.cursorCol+1:this.state.cursorCol-1:void 0,K=Z?U.indexOf($,z):U.lastIndexOf($,z);if(K!==-1){this.state.cursorLine=j,this.setCursorCol(K);return}}}moveWordForwards(){this.lastAction=null;let $=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>=$.length){if(this.state.cursorLine<this.state.lines.length-1)this.state.cursorLine++,this.setCursorCol(0);return}this.setCursorCol(H1($,this.state.cursorCol,{segment:(J)=>this.segment(J,"word"),isAtomicSegment:I0}))}isSlashMenuAllowed(){return this.state.cursorLine===0}isAtStartOfMessage(){if(!this.isSlashMenuAllowed())return!1;let J=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);return J.trim()===""||J.trim()==="/"}isInSlashCommandContext($){return this.isSlashMenuAllowed()&&$.trimStart().startsWith("/")}getBestAutocompleteMatchIndex($,J){if(!J)return-1;let Z=-1;for(let Y=0;Y<$.length;Y++){let X=$[Y].value;if(X===J)return Y;if(Z===-1&&X.startsWith(J))Z=Y}return Z}createAutocompleteList($,J){let Z=$.startsWith("/")?l2:void 0;return new H0(J,this.autocompleteMaxVisible,this.theme.selectList,Z)}tryTriggerAutocomplete($=!1){this.requestAutocomplete({force:!1,explicitTab:$})}handleTabCompletion(){if(!this.autocompleteProvider)return;let J=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);if(this.isInSlashCommandContext(J)&&!J.trimStart().includes(" "))this.handleSlashCommandCompletion();else this.forceFileAutocomplete(!0)}handleSlashCommandCompletion(){this.requestAutocomplete({force:!1,explicitTab:!0})}forceFileAutocomplete($=!1){this.requestAutocomplete({force:!0,explicitTab:$})}requestAutocomplete($){if(!this.autocompleteProvider)return;if($.force){if(!(!this.autocompleteProvider.shouldTriggerFileCompletion||this.autocompleteProvider.shouldTriggerFileCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol)))return}this.cancelAutocompleteRequest();let J=++this.autocompleteStartToken,Z=this.getAutocompleteDebounceMs($);if(Z>0){this.autocompleteDebounceTimer=setTimeout(()=>{this.autocompleteDebounceTimer=void 0,this.startAutocompleteRequest(J,$)},Z);return}this.startAutocompleteRequest(J,$)}async startAutocompleteRequest($,J){let Z=this.autocompleteRequestTask;this.autocompleteRequestTask=(async()=>{if(await Z,$!==this.autocompleteStartToken||!this.autocompleteProvider)return;let Y=new AbortController;this.autocompleteAbort=Y;let X=++this.autocompleteRequestId,G=this.getText(),j=this.state.cursorLine,U=this.state.cursorCol;await this.runAutocompleteRequest(X,Y,G,j,U,J)})(),await this.autocompleteRequestTask}setAutocompleteTriggerCharacters($){let J=[...E8];for(let Z of $){if(Z.length!==1||Z==="/"||o(Z)||J.includes(Z))continue;J.push(Z)}this.autocompleteTriggerCharacters=J,this.autocompleteTriggerPattern=D8(J),this.autocompleteDebouncePattern=S8(J)}getAutocompleteDebounceMs($){if($.explicitTab||$.force)return 0;let Z=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);return this.autocompleteDebouncePattern.test(Z)?d2:0}async runAutocompleteRequest($,J,Z,Y,X,G){if(!this.autocompleteProvider)return;let j=await this.autocompleteProvider.getSuggestions(this.state.lines,this.state.cursorLine,this.state.cursorCol,{signal:J.signal,force:G.force});if(!this.isAutocompleteRequestCurrent($,J,Z,Y,X))return;if(this.autocompleteAbort=void 0,!j||!Array.isArray(j.items)||j.items.length===0){this.cancelAutocomplete(),this.tui.requestRender();return}if(G.force&&G.explicitTab&&j.items.length===1){let U=j.items[0];this.pushUndoSnapshot(),this.lastAction=null;let Q=this.autocompleteProvider.applyCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol,U,j.prefix);if(this.state.lines=Q.lines,this.state.cursorLine=Q.cursorLine,this.setCursorCol(Q.cursorCol),this.onChange)this.onChange(this.getText());this.tui.requestRender();return}this.applyAutocompleteSuggestions(j,G.force?"force":"regular"),this.tui.requestRender()}isAutocompleteRequestCurrent($,J,Z,Y,X){return!J.signal.aborted&&$===this.autocompleteRequestId&&this.getText()===Z&&this.state.cursorLine===Y&&this.state.cursorCol===X}applyAutocompleteSuggestions($,J){this.autocompletePrefix=$.prefix,this.autocompleteList=this.createAutocompleteList($.prefix,$.items);let Z=this.getBestAutocompleteMatchIndex($.items,$.prefix);if(Z>=0)this.autocompleteList.setSelectedIndex(Z);this.autocompleteState=J}cancelAutocompleteRequest(){if(this.autocompleteStartToken+=1,this.autocompleteDebounceTimer)clearTimeout(this.autocompleteDebounceTimer),this.autocompleteDebounceTimer=void 0;this.autocompleteAbort?.abort(),this.autocompleteAbort=void 0}clearAutocompleteUi(){this.autocompleteState=null,this.autocompleteList=void 0,this.autocompletePrefix=""}cancelAutocomplete(){this.cancelAutocompleteRequest(),this.clearAutocompleteUi()}isShowingAutocomplete(){return this.autocompleteState!==null}updateAutocomplete(){if(!this.autocompleteState||!this.autocompleteProvider)return;this.requestAutocomplete({force:this.autocompleteState==="force",explicitTab:!1})}}var R8,h2,T8,I8,l2,d2=20,E8;var L8=T(()=>{N0();z0();d1();Y0();$$();g();J$();Z$();R8=S0(),h2=P0(),T8=/\[paste #(\d+)( (\+\d+ lines|\d+ chars))?\]/g,I8=/^\[paste #(\d+)( (\+\d+ lines|\d+ chars))?\]$/;l2={minPrimaryColumnWidth:12,maxPrimaryColumnWidth:32},E8=["@","#"]});var q1=()=>{};var O1=T(()=>{q1();Y0()});var v8=T(()=>{Y0();g();O1()});var b8=T(()=>{_0();g()});class V0{value="";cursor=0;onSubmit;onEscape;focused=!1;pasteBuffer="";isInPaste=!1;killRing=new w0;lastAction=null;undoStack=new x0;getValue(){return this.value}setValue($){this.value=$,this.cursor=Math.min(this.cursor,$.length)}handleInput($){if($.includes("\x1B[200~"))this.isInPaste=!0,this.pasteBuffer="",$=$.replace("\x1B[200~","");if(this.isInPaste){this.pasteBuffer+=$;let X=this.pasteBuffer.indexOf("\x1B[201~");if(X!==-1){let G=this.pasteBuffer.substring(0,X);this.handlePaste(G),this.isInPaste=!1;let j=this.pasteBuffer.substring(X+6);if(this.pasteBuffer="",j)this.handleInput(j)}return}let J=e();if(J.matches($,"tui.select.cancel")){if(this.onEscape)this.onEscape();return}if(J.matches($,"tui.editor.undo")){this.undo();return}if(J.matches($,"tui.input.submit")||$===`
|
|
25
|
+
`){if(this.onSubmit)this.onSubmit(this.value);return}if(J.matches($,"tui.editor.deleteCharBackward")){this.handleBackspace();return}if(J.matches($,"tui.editor.deleteCharForward")){this.handleForwardDelete();return}if(J.matches($,"tui.editor.deleteWordBackward")){this.deleteWordBackwards();return}if(J.matches($,"tui.editor.deleteWordForward")){this.deleteWordForward();return}if(J.matches($,"tui.editor.deleteToLineStart")){this.deleteToLineStart();return}if(J.matches($,"tui.editor.deleteToLineEnd")){this.deleteToLineEnd();return}if(J.matches($,"tui.editor.yank")){this.yank();return}if(J.matches($,"tui.editor.yankPop")){this.yankPop();return}if(J.matches($,"tui.editor.cursorLeft")){if(this.lastAction=null,this.cursor>0){let X=this.value.slice(0,this.cursor),G=[...p0.segment(X)],j=G[G.length-1];this.cursor-=j?j.segment.length:1}return}if(J.matches($,"tui.editor.cursorRight")){if(this.lastAction=null,this.cursor<this.value.length){let X=this.value.slice(this.cursor),j=[...p0.segment(X)][0];this.cursor+=j?j.segment.length:1}return}if(J.matches($,"tui.editor.cursorLineStart")){this.lastAction=null,this.cursor=0;return}if(J.matches($,"tui.editor.cursorLineEnd")){this.lastAction=null,this.cursor=this.value.length;return}if(J.matches($,"tui.editor.cursorWordLeft")){this.moveWordBackwards();return}if(J.matches($,"tui.editor.cursorWordRight")){this.moveWordForwards();return}let Z=a0($);if(Z!==void 0){this.insertCharacter(Z);return}if(![...$].some((X)=>{let G=X.charCodeAt(0);return G<32||G===127||G>=128&&G<=159}))this.insertCharacter($)}insertCharacter($){if(o($)||this.lastAction!=="type-word")this.pushUndo();this.lastAction="type-word",this.value=this.value.slice(0,this.cursor)+$+this.value.slice(this.cursor),this.cursor+=$.length}handleBackspace(){if(this.lastAction=null,this.cursor>0){this.pushUndo();let $=this.value.slice(0,this.cursor),J=[...p0.segment($)],Z=J[J.length-1],Y=Z?Z.segment.length:1;this.value=this.value.slice(0,this.cursor-Y)+this.value.slice(this.cursor),this.cursor-=Y}}handleForwardDelete(){if(this.lastAction=null,this.cursor<this.value.length){this.pushUndo();let $=this.value.slice(this.cursor),Z=[...p0.segment($)][0],Y=Z?Z.segment.length:1;this.value=this.value.slice(0,this.cursor)+this.value.slice(this.cursor+Y)}}deleteToLineStart(){if(this.cursor===0)return;this.pushUndo();let $=this.value.slice(0,this.cursor);this.killRing.push($,{prepend:!0,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.value=this.value.slice(this.cursor),this.cursor=0}deleteToLineEnd(){if(this.cursor>=this.value.length)return;this.pushUndo();let $=this.value.slice(this.cursor);this.killRing.push($,{prepend:!1,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.value=this.value.slice(0,this.cursor)}deleteWordBackwards(){if(this.cursor===0)return;let $=this.lastAction==="kill";this.pushUndo();let J=this.cursor;this.moveWordBackwards();let Z=this.cursor;this.cursor=J;let Y=this.value.slice(Z,this.cursor);this.killRing.push(Y,{prepend:!0,accumulate:$}),this.lastAction="kill",this.value=this.value.slice(0,Z)+this.value.slice(this.cursor),this.cursor=Z}deleteWordForward(){if(this.cursor>=this.value.length)return;let $=this.lastAction==="kill";this.pushUndo();let J=this.cursor;this.moveWordForwards();let Z=this.cursor;this.cursor=J;let Y=this.value.slice(this.cursor,Z);this.killRing.push(Y,{prepend:!1,accumulate:$}),this.lastAction="kill",this.value=this.value.slice(0,this.cursor)+this.value.slice(Z)}yank(){let $=this.killRing.peek();if(!$)return;this.pushUndo(),this.value=this.value.slice(0,this.cursor)+$+this.value.slice(this.cursor),this.cursor+=$.length,this.lastAction="yank"}yankPop(){if(this.lastAction!=="yank"||this.killRing.length<=1)return;this.pushUndo();let $=this.killRing.peek()||"";this.value=this.value.slice(0,this.cursor-$.length)+this.value.slice(this.cursor),this.cursor-=$.length,this.killRing.rotate();let J=this.killRing.peek()||"";this.value=this.value.slice(0,this.cursor)+J+this.value.slice(this.cursor),this.cursor+=J.length,this.lastAction="yank"}pushUndo(){this.undoStack.push({value:this.value,cursor:this.cursor})}undo(){let $=this.undoStack.pop();if(!$)return;this.value=$.value,this.cursor=$.cursor,this.lastAction=null}moveWordBackwards(){if(this.cursor===0)return;this.lastAction=null,this.cursor=_1(this.value,this.cursor)}moveWordForwards(){if(this.cursor>=this.value.length)return;this.lastAction=null,this.cursor=H1(this.value,this.cursor)}handlePaste($){this.lastAction=null,this.pushUndo();let J=$.replace(/\r\n/g,"").replace(/\r/g,"").replace(/\n/g,"").replace(/\t/g," ");this.value=this.value.slice(0,this.cursor)+J+this.value.slice(this.cursor),this.cursor+=J.length}invalidate(){}render($){let Z=$-2;if(Z<=0)return["> "];let Y="",X=this.cursor,G=M(this.value);if(G<Z)Y=this.value;else{let O=this.cursor===this.value.length?Z-1:Z,P=M(this.value.slice(0,this.cursor));if(O>0){let E=Math.floor(O/2),C=0;if(P<E)C=0;else if(P>G-E)C=Math.max(0,G-O);else C=Math.max(0,P-E);Y=t(this.value,C,O,!0),X=t(this.value,C,Math.max(0,P-C),!0).length}else Y="",X=0}let U=[...p0.segment(Y.slice(X))][0],Q=Y.slice(0,X),z=U?.segment??" ",K=Y.slice(X+z.length),N=this.focused?j0:"",_=`\x1B[7m${z}\x1B[27m`,B=Q+N+_+K,H=M(B),q=" ".repeat(Math.max(0,Z-H));return["> "+B+q]}}var p0;var A1=T(()=>{N0();z0();d1();Y0();$$();g();J$();p0=S0()});function B6($,J){let Z="";for(let Y of $){let X=J[Y];if(X===void 0)return;Z+=X}return Z}function W0($,J){$=$.trim();let Z=J==="sub"?Q6:j6,Y=B6($.replace(/\s*([=+-])\s*/g,"$1"),Z);if(Y!==void 0)return Y;let X=J==="sub"?"_":"^";if(Array.from($).length===1||J==="sub"&&/^[A-Za-z]+$/.test($))return`${X}${$}`;return`${X}(${$})`}function q6($,J){$=$.trim(),J=J.trim();let Z=/^[\p{L}\p{N}.]+$/u.test($),Y=/^[\p{N}.]+$/u.test(J)||Array.from(J).length===1;return`${Z?$:`(${$})`}/${Y?J:`(${J})`}`}function V1($,J="\u221A"){return $=$.trim(),/^[\p{L}\p{N}.]+$/u.test($)?`${J}${$}`:`${J}(${$})`}function u0($){return $.replace(O6," ").replaceAll(w8,"").replace(A6," ").replaceAll(F0,"").split(`
|
|
26
|
+
`).map((J)=>J.replace(/[ \t]+/g," ").trim()).filter((J,Z,Y)=>J.length>0||Z>0&&Z<Y.length-1).join(`
|
|
27
|
+
`).trim()}function M0($,J,Z=!1){let Y=Math.max(0,J-M($)),X=Z?Math.floor(Y/2):0;return`${" ".repeat(X)}${$}${" ".repeat(Y-X)}`}function M6($){if($.length===0)return{lines:[""],width:0,baseline:0};let J=Math.max(...$.map((X)=>X.baseline)),Z=Math.max(...$.map((X)=>X.lines.length-X.baseline-1)),Y=[];for(let X=0;X<=J+Z;X++){let G="";for(let j of $){let U=X-J+j.baseline;G+=U>=0&&U<j.lines.length?M0(j.lines[U]??"",j.width):" ".repeat(j.width)}Y.push(G.trimEnd())}return{lines:Y,width:$.reduce((X,G)=>X+G.width,0),baseline:J}}function Q$($,J){let Z=[],Y=0;for(let X of $.split(`
|
|
28
|
+
`)){let G=[],j=0,U;for(let z of X.matchAll(V6)){let K=z.index,N=J[Number(z[1])];if(!N)continue;if(K>j){let _=X.slice(j,K),B=(U?_.trimStart():_).trimEnd(),H=U?.type==="matrix"&&/^\s/.test(_),q=N.type==="matrix"&&/\s$/.test(_),A=B?`${H?" ":""}${B}${q?" ":""}`:H||q?" ":"";G.push({lines:[A],width:M(A),baseline:0})}if(N.type==="fraction"){let _=Q$(N.numerator,J),B=Q$(N.denominator,J),H=Math.max(_.width,B.width,1),q=H+2;G.push({lines:[..._.lines.map((A)=>M0(A,q,!0)),` ${"\u2500".repeat(H)} `,...B.lines.map((A)=>M0(A,q,!0))],width:q,baseline:_.lines.length})}else if(N.type==="operator"){let _=Math.max(M(N.operator),N.lower===void 0?0:M(N.lower),N.upper===void 0?0:M(N.upper)),B=[];if(N.upper!==void 0)B.push(`${M0(N.upper,_,!0)} `);if(B.push(`${M0(N.operator,_,!0)} `),N.lower!==void 0)B.push(`${M0(N.lower,_,!0)} `);G.push({lines:B,width:_+1,baseline:N.upper===void 0?0:1})}else{let _=Math.max(0,...N.lines.map((B)=>M(B)));G.push({lines:N.lines.map((B)=>M0(B,_)),width:_,baseline:N.baseline})}j=K+z[0].length,U=N}if(j<X.length){let z=X.slice(j),K=U?z.trimStart():z,N=U?.type==="matrix"&&/^\s/.test(z)?` ${K}`:K;G.push({lines:[N],width:M(N),baseline:0})}let Q=M6(G);if(Z.length===0)Y=Q.baseline;Z.push(...Q.lines)}return{lines:Z,width:Math.max(0,...Z.map((X)=>M(X))),baseline:Y}}class U${source;layoutNodes;display;position=0;supported=!0;stackFractions=!0;constructor($,J,Z){this.source=$,this.layoutNodes=J,this.display=Z}render(){let $=this.parseSequence();if(!this.supported||this.position!==this.source.length)return;return u0($)}parseSequence($){let J="";while(this.position<this.source.length){let Z=this.source[this.position];if($&&Z===$)return this.position++,J;if(Z==="}")return this.supported=!1,J;if(Z==="{"){this.position++,J+=this.parseSequence("}");continue}if(Z==="\\"){let Y=this.parseCommand();if(Y===y8){if(J=J.trimEnd(),J.endsWith(F0))J=J.slice(0,-F0.length)}else J+=Y;continue}if(Z==="^"||Z==="_"){this.position++,J=J.trimEnd();let Y=W0(this.parseRequiredArgument(!1),Z==="_"?"sub":"sup");if(J.endsWith(F0))J=`${J.slice(0,-F0.length)}${Y}${F0}`;else J+=Y;continue}if(/\s/.test(Z)){J+=this.parseWhitespace();continue}if(Z==="="||Z==="<"||Z===">"){J=`${J.trimEnd()} ${Z} `,this.position++;continue}if(Z==="&"){this.position++;continue}if(Z==="~"){this.position++,J+=" ";continue}if(Z==="."){let Y=F6.exec(J),X=Y?this.layoutNodes[Number(Y[1])]:void 0;if(X?.type==="matrix"){let G=X.lines.length-1;X.lines[G]=`${X.lines[G]??""}${Z}`,this.position++;continue}}J+=Z,this.position++}if($)this.supported=!1;return J}parseWhitespace(){while(this.position<this.source.length&&/\s/.test(this.source[this.position]??""))this.position++;return" "}parseCommand(){if(this.position++,this.position>=this.source.length)return this.supported=!1,"";let $="",J=this.source[this.position]??"";if(J===`
|
|
29
|
+
`||J==="\r"){if(this.position++,J==="\r"&&this.source[this.position]===`
|
|
30
|
+
`)this.position++;return" "}if(/[A-Za-z]/.test(J)){let X=this.position;while(this.position<this.source.length&&/[A-Za-z]/.test(this.source[this.position]??""))this.position++;$=this.source.slice(X,this.position)}else $=J,this.position++;if($==="\\")return`
|
|
31
|
+
`;if(U6.has($))return" ";if(z6.has($))return y8;if(K6.has($))return"";if($==="{"||$==="}"||$==="$"||$==="%"||$==="#"||$==="_"||$==="&")return $;if($==="|")return"\u2016";if($==="not"){let X=this.parseRequiredArgument(!1).trim(),G=X6[X];if(G!==void 0)return` ${G} `;let j=Array.from(X);if(j.length===0)return this.supported=!1,"";return` ${j[0]}\u0338${j.slice(1).join("")} `}if(J6.has($))return this.parseOperator($,"bracket",!0,!0);let Z=e2[$];if(Z!==void 0){if(Z6.has($))return this.parseOperator(Z,"script",!0);return $==="cdot"||$==="times"||Y6.has($)?` ${Z} `:Z}if($6.has($))return`${w8}${$}${F0}`;if(N6.has($))return"";if($==="left"||$==="middle"||$==="right"){if(this.source[this.position]===".")this.position++;return""}if($==="frac"||$==="dfrac"||$==="tfrac"){let X=this.display&&this.stackFractions&&$!=="tfrac",G=this.parseRequiredArgument(!X),j=this.parseRequiredArgument(!X);if(X){let U=this.layoutNodes.push({type:"fraction",numerator:u0(G),denominator:u0(j)})-1;return`${X$}${U}${G$}`}return q6(G,j)}if($==="sqrt"){let X=this.parseOptionalArgument()?.trim(),G=this.parseRequiredArgument();if(X===void 0||X==="2")return V1(G);if(X==="3")return V1(G,"\u221B");if(X==="4")return V1(G,"\u221C");return`${W0(X,"sup")}${V1(G)}`}if($==="boxed"||$==="fbox")return`[${this.parseRequiredArgument().trim()}]`;if($==="binom"||$==="dbinom"||$==="tbinom")return`(${this.parseRequiredArgument()} choose ${this.parseRequiredArgument()})`;let Y=H6[$];if(Y!==void 0){let X=this.parseRequiredArgument();return Array.from(X).length===1?`${X}${Y}`:`${$}(${X})`}if($==="mathbb"){let X=this.parseRequiredArgument();return Array.from(X,(G)=>G6[G]??G).join("")}if($==="operatorname"){let X=this.source[this.position]==="*";if(X)this.position++;let G=u0(this.parseRequiredArgument()).trim();return this.parseOperator(G,"bracket",X,!0)}if($==="mod"||$==="bmod")return" mod ";if($==="pmod"||$==="pod"){let X=this.parseRequiredArgument().trim();return $==="pmod"?` (mod ${X})`:` (${X})`}if($==="overset"||$==="stackrel"){let X=this.parseRequiredArgument();return`${this.parseRequiredArgument().trim()}${W0(X,"sup")}`}if($==="underset"){let X=this.parseRequiredArgument();return`${this.parseRequiredArgument().trim()}${W0(X,"sub")}`}if(_6.has($)){let X=this.parseRequiredArgument();return $.startsWith("text")||$==="mbox"?X:X.trim()}if($==="begin")return this.parseEnvironment();if($==="end")return this.supported=!1,"";return this.supported=!1,`\\${$}`}parseOperator($,J,Z,Y=!1){let X=Z,G=this.position;while(G<this.source.length&&/[ \t]/.test(this.source[G]??""))G++;let j=/^\\(limits|nolimits)(?![A-Za-z])/.exec(this.source.slice(G));if(j)X=j[1]==="limits",this.position=G+j[0].length;let U,Q;while(!0){let K=this.position;while(K<this.source.length&&/[ \t]/.test(this.source[K]??""))K++;let N=this.source[K];if(N!=="_"&&N!=="^")break;this.position=K+1;let _=u0(this.parseRequiredArgument(!1)).replaceAll(" ","");if(N==="_"){if(U!==void 0)this.supported=!1;U=_}else{if(Q!==void 0)this.supported=!1;Q=_}}if(this.display&&X&&(U!==void 0||Q!==void 0)){let K=this.layoutNodes.push({type:"operator",operator:$,lower:U,upper:Q})-1;return`${X$}${K}${G$}`}let z=$;if(U!==void 0)z+=J==="bracket"?`[${U}]`:W0(U,"sub");if(Q!==void 0)z+=W0(Q,"sup");return Y?` ${z} `:z}parseRequiredArgument($=!0){let J=this.stackFractions;this.stackFractions=J&&$;let Z=this.parseRequiredArgumentValue();return this.stackFractions=J,Z}parseRequiredArgumentValue(){while(this.position<this.source.length&&/\s/.test(this.source[this.position]??""))this.position++;if(this.position>=this.source.length)return this.supported=!1,"";if(this.source[this.position]==="{")return this.position++,this.parseSequence("}");if(this.source[this.position]==="\\")return this.parseCommand();let $=this.source[this.position]??"";return this.position++,$}parseOptionalArgument(){while(this.position<this.source.length&&/[ \t]/.test(this.source[this.position]??""))this.position++;if(this.source[this.position]!=="[")return;let $=this.source.indexOf("]",this.position+1);if($<0){this.supported=!1;return}let J=this.source.slice(this.position+1,$);return this.position=$+1,this.renderNested(J)}readRawGroup(){while(this.position<this.source.length&&/[ \t]/.test(this.source[this.position]??""))this.position++;if(this.source[this.position]!=="{"){this.supported=!1;return}let $=++this.position,J=1;while(this.position<this.source.length){let Z=this.source[this.position];if(Z==="\\"){this.position+=2;continue}if(Z==="{")J++;if(Z==="}")J--;if(J===0){let Y=this.source.slice($,this.position);return this.position++,Y}this.position++}this.supported=!1;return}splitEnvironmentRows($){return $.split(/\\\\(?:\[[^\]\n]*\])?/)}parseEnvironment(){let $=this.readRawGroup();if(!$)return"";let J=`\\end{${$}}`,Z=this.source.indexOf(J,this.position);if(Z<0)return this.supported=!1,"";let Y=this.source.slice(this.position,Z);if(this.position=Z+J.length,$==="equation"||$==="equation*"||$==="displaymath")return this.renderNested(Y).trim();if($==="aligned"||$==="align"||$==="align*"||$==="alignedat"||$==="alignat"||$==="alignat*"||$==="gather"||$==="gathered"||$==="multline"||$==="multline*"||$==="split"){let X=["alignedat","alignat","alignat*"].includes($),G=X?Y.replace(/^\s*\{[^}]*\}/,""):Y;return this.splitEnvironmentRows(G).map((j)=>{let U=j.split("&"),Q=X?Array.from({length:Math.ceil(U.length/2)},(z,K)=>U.slice(K*2,K*2+2).join("")).join(" "):U.join("");return this.renderNested(Q).trim()}).filter(Boolean).join(`
|
|
32
|
+
`)}if($==="cases"||$==="cases*"){let X=this.splitEnvironmentRows(Y).map((G)=>G.split("&").map((j)=>this.renderNested(j,!1).trim())).filter((G)=>G.some(Boolean));return X.map((G,j)=>{let U=(G[0]??"").replace(/,\s*$/,""),Q=G[1]??"",z=j===0?"\u23A7":j===X.length-1?"\u23A9":"\u23A8",K=/^(?:if|when|for|otherwise)\b/i.test(Q)?" ":" if ";return`${z} ${U}${Q?`${K}${Q}`:""}`}).join(`
|
|
33
|
+
`)}if(["array","matrix","smallmatrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix"].includes($)){let X=$==="array"?Y.replace(/^\s*\{[^}]*\}/,""):Y;return this.renderMatrix($,X)}return this.supported=!1,Y}renderMatrix($,J){let Z=this.splitEnvironmentRows(J).map((Q)=>Q.split("&").map((z)=>this.renderNested(z,!1).trim())).filter((Q)=>Q.some(Boolean)),Y=Math.max(0,...Z.map((Q)=>Q.length)),X=Array.from({length:Y},(Q,z)=>Math.max(0,...Z.map((K)=>M(K[z]??"")))),G=Z.map((Q)=>Array.from({length:Y},(z,K)=>{let N=Q[K]??"";return`${N}${j$.repeat(Math.max(0,(X[K]??0)-M(N)))}`}).join(" \u2502 ")),j;if($==="array"||$==="matrix"||$==="smallmatrix")j=G;else{let z={pmatrix:["\u239B","\u239E","\u239C","\u239F","\u239D","\u23A0"],bmatrix:["\u23A1","\u23A4","\u23A2","\u23A5","\u23A3","\u23A6"],Bmatrix:["\u23A7","\u23AB","\u23A8","\u23AC","\u23A9","\u23AD"],vmatrix:["\u2502","\u2502","\u2502","\u2502","\u2502","\u2502"],Vmatrix:["\u2551","\u2551","\u2551","\u2551","\u2551","\u2551"]}[$];if(!z)return this.supported=!1,G.join(`
|
|
34
|
+
`);j=G.map((K,N)=>{let _=N===0?z[0]:N===G.length-1?z[4]:z[2],B=N===0?z[1]:N===G.length-1?z[5]:z[3];return`${_} ${K} ${B}`})}if(j.length<=1)return j[0]??"";let U=this.layoutNodes.push({type:"matrix",lines:j,baseline:0})-1;return`${X$}${U}${G$}`}renderNested($,J=!0){let Z=new U$($,this.layoutNodes,this.display&&J).render();if(Z===void 0)return this.supported=!1,$;return Z}}function F1($,J={}){let Z=[],Y=new U$($,Z,J.display===!0).render();if(Y===void 0)return;if(Z.length===0)return Y.replaceAll(j$," ");let X=Q$(Y,Z).lines,G=Math.min(...X.filter((j)=>j.trim()).map((j)=>j.length-j.trimStart().length));return X.map((j)=>j.slice(G).trimEnd()).join(`
|
|
35
|
+
`).trimEnd().replaceAll(j$," ")}var e2,$6,J6,Z6,Y6,X6,G6,j6,Q6,U6,z6,y8="\x00",K6,N6,_6,H6,w8="\uDB80\uDC04",F0="\uDB80\uDC05",O6,A6,X$="\uDB80\uDC00",G$="\uDB80\uDC01",V6,F6,j$="\uDB80\uDC02";var z$=T(()=>{g();e2={alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03F5",varepsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",vartheta:"\u03D1",iota:"\u03B9",kappa:"\u03BA",varkappa:"\u03F0",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",pi:"\u03C0",varpi:"\u03D6",rho:"\u03C1",varrho:"\u03F1",sigma:"\u03C3",varsigma:"\u03C2",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03D5",varphi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",Gamma:"\u0393",Delta:"\u0394",Theta:"\u0398",Lambda:"\u039B",Xi:"\u039E",Pi:"\u03A0",Sigma:"\u03A3",Upsilon:"\u03A5",Phi:"\u03A6",Psi:"\u03A8",Omega:"\u03A9",pm:"\xB1",mp:"\u2213",times:"\xD7",div:"\xF7",cdot:"\xB7",ast:"\u2217",star:"\u22C6",circ:"\u2218",bullet:"\u2022",oplus:"\u2295",ominus:"\u2296",otimes:"\u2297",oslash:"\u2298",odot:"\u2299",bigcirc:"\u25CB",dagger:"\u2020",ddagger:"\u2021",amalg:"\u2A3F",uplus:"\u228E",sqcap:"\u2293",sqcup:"\u2294",triangleleft:"\u25C1",triangleright:"\u25B7",wr:"\u2240",cap:"\u2229",cup:"\u222A",bigcap:"\u22C2",bigcup:"\u22C3",bigwedge:"\u22C0",bigvee:"\u22C1",bigsqcup:"\u2A06",biguplus:"\u2A04",bigoplus:"\u2A01",bigotimes:"\u2A02",bigodot:"\u2A00",setminus:"\u2216",in:"\u2208",notin:"\u2209",ni:"\u220B",subset:"\u2282",supset:"\u2283",subseteq:"\u2286",supseteq:"\u2287",sqsubset:"\u228F",sqsupset:"\u2290",sqsubseteq:"\u2291",sqsupseteq:"\u2292",prec:"\u227A",preceq:"\u227C",succ:"\u227B",succeq:"\u227D",ll:"\u226A",gg:"\u226B",le:"\u2264",leq:"\u2264",leqslant:"\u2264",ge:"\u2265",geq:"\u2265",geqslant:"\u2265",ne:"\u2260",neq:"\u2260",equiv:"\u2261",approx:"\u2248",sim:"\u223C",simeq:"\u2243",cong:"\u2245",asymp:"\u224D",doteq:"\u2250",propto:"\u221D",parallel:"\u2225",perp:"\u22A5",mid:"\u2223",vdash:"\u22A2",dashv:"\u22A3",models:"\u22A8",Vdash:"\u22A9",Vvdash:"\u22AA",nvdash:"\u22AC",nvDash:"\u22AD",forall:"\u2200",exists:"\u2203",nexists:"\u2204",neg:"\xAC",land:"\u2227",wedge:"\u2227",lor:"\u2228",vee:"\u2228",to:"\u2192",rightarrow:"\u2192",longrightarrow:"\u2192",leftarrow:"\u2190",longleftarrow:"\u2190",gets:"\u2190",leftrightarrow:"\u2194",longleftrightarrow:"\u2194",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",leftharpoonup:"\u21BC",leftharpoondown:"\u21BD",rightharpoonup:"\u21C0",rightharpoondown:"\u21C1",rightleftharpoons:"\u21CC",leftrightharpoons:"\u21CB",nearrow:"\u2197",searrow:"\u2198",swarrow:"\u2199",nwarrow:"\u2196",rightsquigarrow:"\u21DD",leadsto:"\u21DD",Rightarrow:"\u21D2",Longrightarrow:"\u21D2",Leftarrow:"\u21D0",Longleftarrow:"\u21D0",Leftrightarrow:"\u21D4",Longleftrightarrow:"\u21D4",implies:"\u21D2",iff:"\u21D4",mapsto:"\u21A6",longmapsto:"\u21A6",uparrow:"\u2191",downarrow:"\u2193",partial:"\u2202",nabla:"\u2207",int:"\u222B",iint:"\u222C",iiint:"\u222D",oint:"\u222E",sum:"\u2211",prod:"\u220F",coprod:"\u2210",infty:"\u221E",emptyset:"\u2205",varnothing:"\u2205",angle:"\u2220",therefore:"\u2234",because:"\u2235",aleph:"\u2135",beth:"\u2136",gimel:"\u2137",daleth:"\u2138",top:"\u22A4",bot:"\u22A5",triangle:"\u25B3",square:"\u25A1",lozenge:"\u25CA",checkmark:"\u2713",complement:"\u2201",wp:"\u2118",prime:"\u2032",ldots:"\u2026",dots:"\u2026",cdots:"\u22EF",vdots:"\u22EE",ddots:"\u22F1",ell:"\u2113",hbar:"\u210F",Im:"\u2111",Re:"\u211C",langle:"\u27E8",rangle:"\u27E9",vert:"|",lvert:"|",rvert:"|",Vert:"\u2016",lVert:"\u2016",rVert:"\u2016",lbrace:"{",rbrace:"}",backslash:"\\",lfloor:"\u230A",rfloor:"\u230B",lceil:"\u2308",rceil:"\u2309",colon:":"},$6=new Set(["arccos","arcsin","arctan","arg","cos","cosh","cot","coth","csc","deg","det","dim","exp","gcd","hom","inf","ker","lg","lim","liminf","limsup","ln","log","max","min","Pr","sec","sin","sinh","sup","tan","tanh"]),J6=new Set(["argmax","argmin","inf","injlim","lim","liminf","limsup","max","min","projlim","sup"]),Z6=new Set(["bigcap","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","biguplus","bigvee","bigwedge","coprod","int","iint","iiint","oint","prod","sum"]),Y6=new Set(["Leftarrow","Leftrightarrow","Longleftarrow","Longleftrightarrow","Longrightarrow","Rightarrow","Vdash","Vvdash","approx","asymp","cong","dashv","doteq","downarrow","equiv","ge","geq","geqslant","gets","gg","hookleftarrow","hookrightarrow","iff","implies","in","leadsto","le","leftarrow","leftharpoondown","leftharpoonup","leftrightarrow","leftrightharpoons","leq","leqslant","ll","longleftarrow","longleftrightarrow","longmapsto","longrightarrow","mapsto","mid","models","ne","nearrow","neq","ni","notin","nvdash","nvDash","nwarrow","parallel","perp","prec","preceq","propto","rightharpoondown","rightharpoonup","rightleftharpoons","rightarrow","rightsquigarrow","searrow","sim","simeq","sqsubset","sqsubseteq","sqsupset","sqsupseteq","subset","subseteq","succ","succeq","supset","supseteq","swarrow","to","triangleleft","triangleright","twoheadleftarrow","twoheadrightarrow","uparrow","vdash"]),X6={"<":"\u226E",">":"\u226F","=":"\u2260","\u2208":"\u2209","\u220B":"\u220C","\u2223":"\u2224","\u2225":"\u2226","\u223C":"\u2241","\u2243":"\u2244","\u2245":"\u2247","\u2248":"\u2249","\u2261":"\u2262","\u2264":"\u2270","\u2265":"\u2271","\u227A":"\u2280","\u227B":"\u2281","\u2282":"\u2284","\u2283":"\u2285","\u2286":"\u2288","\u2287":"\u2289","\u22A2":"\u22AC","\u22A8":"\u22AD","\u2194":"\u21AE","\u2190":"\u219A","\u2192":"\u219B","\u21D2":"\u21CF","\u21D0":"\u21CD","\u21D4":"\u21CE","\u227C":"\u22E0","\u227D":"\u22E1"},G6={C:"\u2102",H:"\u210D",N:"\u2115",P:"\u2119",Q:"\u211A",R:"\u211D",Z:"\u2124"},j6={"0":"\u2070","1":"\xB9","2":"\xB2","3":"\xB3","4":"\u2074","5":"\u2075","6":"\u2076","7":"\u2077","8":"\u2078","9":"\u2079","+":"\u207A","-":"\u207B","=":"\u207C","(":"\u207D",")":"\u207E",a:"\u1D43",b:"\u1D47",c:"\u1D9C",d:"\u1D48",e:"\u1D49",f:"\u1DA0",g:"\u1D4D",h:"\u02B0",i:"\u2071",j:"\u02B2",k:"\u1D4F",l:"\u02E1",m:"\u1D50",n:"\u207F",o:"\u1D52",p:"\u1D56",r:"\u02B3",s:"\u02E2",t:"\u1D57",u:"\u1D58",v:"\u1D5B",w:"\u02B7",x:"\u02E3",y:"\u02B8",z:"\u1DBB"},Q6={"0":"\u2080","1":"\u2081","2":"\u2082","3":"\u2083","4":"\u2084","5":"\u2085","6":"\u2086","7":"\u2087","8":"\u2088","9":"\u2089","+":"\u208A","-":"\u208B","=":"\u208C","(":"\u208D",")":"\u208E",a:"\u2090",e:"\u2091",h:"\u2095",i:"\u1D62",j:"\u2C7C",k:"\u2096",l:"\u2097",m:"\u2098",n:"\u2099",o:"\u2092",p:"\u209A",r:"\u1D63",s:"\u209B",t:"\u209C",u:"\u1D64",v:"\u1D65",x:"\u2093"},U6=new Set([",",":",";"," ",">","enspace","enskip","medspace","quad","qquad","thickspace","thinspace"]),z6=new Set(["!","negmedspace","negthickspace","negthinspace"]),K6=new Set(["displaystyle","limits","nolimits","scriptstyle","scriptscriptstyle","textstyle"]),N6=new Set(["big","Big","bigg","Bigg","bigl","Bigl","biggl","Biggl","bigr","Bigr","biggr","Biggr"]),_6=new Set(["emph","mathcal","mathbf","mathfrak","mathit","mathrm","mathnormal","mathscr","mathsf","mathtt","mathup","mbox","overbrace","pmb","smash","substack","text","textbf","textit","textmd","textnormal","textrm","textsc","textsf","textsl","texttt","textup","underbrace","bm","boldsymbol"]),H6={acute:"\u0301",bar:"\u0305",breve:"\u0306",check:"\u030C",ddot:"\u0308",dot:"\u0307",grave:"\u0300",hat:"\u0302",mathring:"\u030A",overleftarrow:"\u20D6",overleftrightarrow:"\u20E1",overline:"\u0305",overrightarrow:"\u20D7",tilde:"\u0303",underline:"\u0332",vec:"\u20D7",widehat:"\u0302",widetilde:"\u0303"};O6=/(?<=[\p{L}\p{N})\]}\u{f0001}])\u{f0004}/gu,A6=/\u{f0005}(?=[\p{L}\p{N}\u221A\u{f0000}])/gu;V6=/\u{f0000}(\d+)\u{f0001}/gu,F6=/\u{f0000}(\d+)\u{f0001}$/u});import{Marked as E6,Tokenizer as D6}from"marked";function P6($,J){let Z=0;for(let Y=J-1;Y>=0&&$[Y]==="\\";Y--)Z++;return Z%2===1}function R6($,J,Z){let Y=$.indexOf(J,Z);while(Y>=0&&P6($,Y))Y=$.indexOf(J,Y+J.length);return Y}function g8($){return/\\[A-Za-z]+|[_^=+*/<>()[\]|\u00B1\u2264\u2265\u2260\u2248\u2208\u2192\u21D2\u221E\u222B\u2211\u221A-]/.test($)}function T6($){let J="",Z="";if($.startsWith("$$"))J="$$",Z="$$";else if($.startsWith("\\("))J="\\(",Z="\\)";else if($.startsWith("\\["))J="\\[",Z="\\]";else if($.startsWith("$")&&!/^\$\s/.test($))J="$",Z="$";else return;let Y=R6($,Z,J.length);if(Y>=0&&J==="$"&&(/\s$/.test($.slice(J.length,Y))||/^\d/.test($.slice(Y+1))||/^[A-Z_][A-Z0-9_]*(?:[^A-Za-z0-9_\s])?$/.test($.slice(J.length,Y))&&/^[A-Za-z_][A-Za-z0-9_]*/.test($.slice(Y+1))||$.slice(J.length,Y).includes("`")))return;if(Y<0){let j=$.slice(J.length);if(J.startsWith("\\")||g8(j))return{type:"latex",raw:$,text:j,pending:!0};return}let X=$.slice(J.length,Y);if(!X||X.includes(`
|
|
36
|
+
`))return;return{type:"latex",raw:$.slice(0,Y+Z.length),text:X}}function I6($){let J=/^ {0,3}\$\$[ \t]*(?:\n)?([\s\S]*?)\$\$[ \t]*(?:\n|$)/.exec($);if(J?.[1])return{type:"latexBlock",raw:J[0],text:J[1].trim()};let Z=/^ {0,3}\\\[[ \t]*(?:\n)?([\s\S]*?)\\\][ \t]*(?:\n|$)/.exec($);if(Z?.[1])return{type:"latexBlock",raw:Z[0],text:Z[1].trim()};let Y=/^ {0,3}\\\[[ \t]*(?:\n)?([\s\S]*)$/.exec($);if(Y)return{type:"latexBlock",raw:Y[0],text:Y[1],pending:!0};let X=/^ {0,3}\$\$[ \t]*(?:\n)?([\s\S]*)$/.exec($);if(X?.[1]&&g8(X[1]))return{type:"latexBlock",raw:X[0],text:X[1],pending:!0};return}function K$($){let J=$[$.length-1];if(J?.type==="list"){K$(J.items[J.items.length-1]?.tokens??[]);return}if(J?.type==="blockquote"){K$(J.tokens??[]);return}if(J?.type!=="code")return;let Z=/^(`{3,}|~{3,})/.exec(J.raw)?.[1],Y=J.raw.split(`
|
|
37
|
+
`).pop();if(!Z||!Y||Y.length>=Z.length||Y!==Z[0]?.repeat(Y.length))return;J.text=J.text.slice(0,-Y.length).replace(/\n$/,"")}class M1{text;paddingX;paddingY;defaultTextStyle;theme;options;defaultStylePrefix;cachedText;cachedWidth;cachedLines;constructor($,J,Z,Y,X,G){this.text=$,this.paddingX=J,this.paddingY=Z,this.theme=Y,this.defaultTextStyle=X,this.options=G?{...G}:{}}setText($){this.text=$,this.invalidate()}invalidate(){this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0}render($){if(this.cachedLines&&this.cachedText===this.text&&this.cachedWidth===$)return this.cachedLines;let J=Math.max(1,$-this.paddingX*2),Z=this.options.transform?.(this.text,J)??this.text;if(!Z||Z.trim()===""){let H=[];return this.cachedText=this.text,this.cachedWidth=$,this.cachedLines=H,H}let Y=Z.replace(/\t/g," "),X=N$.lexer(Y);K$(X);let G=[];for(let H=0;H<X.length;H++){let q=X[H],A=X[H+1],O=this.renderToken(q,J,A?.type);for(let P of O)G.push(P)}let j=[];for(let H of G)if(s(H))j.push(H);else for(let q of a(H,J))j.push(q);let U=" ".repeat(this.paddingX),Q=" ".repeat(this.paddingX),z=this.defaultTextStyle?.bgColor,K=[];for(let H of j){if(s(H)){K.push(H);continue}let q=U+H+Q;if(z)K.push(O0(q,$,z));else{let A=M(q),O=Math.max(0,$-A);K.push(q+" ".repeat(O))}}let N=" ".repeat($),_=[];for(let H=0;H<this.paddingY;H++){let q=z?O0(N,$,z):N;_.push(q)}let B=_.concat(K,_);return this.cachedText=this.text,this.cachedWidth=$,this.cachedLines=B,B.length>0?B:[""]}applyDefaultStyle($){if(!this.defaultTextStyle)return $;let J=$;if(this.defaultTextStyle.color)J=this.defaultTextStyle.color(J);if(this.defaultTextStyle.bold)J=this.theme.bold(J);if(this.defaultTextStyle.italic)J=this.theme.italic(J);if(this.defaultTextStyle.strikethrough)J=this.theme.strikethrough(J);if(this.defaultTextStyle.underline)J=this.theme.underline(J);return J}getDefaultStylePrefix(){if(!this.defaultTextStyle)return"";if(this.defaultStylePrefix!==void 0)return this.defaultStylePrefix;let $="\x00",J=$;if(this.defaultTextStyle.color)J=this.defaultTextStyle.color(J);if(this.defaultTextStyle.bold)J=this.theme.bold(J);if(this.defaultTextStyle.italic)J=this.theme.italic(J);if(this.defaultTextStyle.strikethrough)J=this.theme.strikethrough(J);if(this.defaultTextStyle.underline)J=this.theme.underline(J);let Z=J.indexOf($);return this.defaultStylePrefix=Z>=0?J.slice(0,Z):"",this.defaultStylePrefix}getStylePrefix($){let Z=$("\x00"),Y=Z.indexOf("\x00");return Y>=0?Z.slice(0,Y):""}getDefaultInlineStyleContext(){return{applyText:($)=>this.applyDefaultStyle($),stylePrefix:this.getDefaultStylePrefix()}}renderToken($,J,Z,Y){let X=[];switch($.type){case"heading":{let G=$.depth,j=`${"#".repeat(G)} `,U;if(G===1)U=(N)=>this.theme.heading(this.theme.bold(this.theme.underline(N)));else U=(N)=>this.theme.heading(this.theme.bold(N));let Q={applyText:U,stylePrefix:this.getStylePrefix(U)},z=this.renderInlineTokens($.tokens||[],Q),K=G>=3?U(j)+z:z;if(X.push(K),Z&&Z!=="space")X.push("");break}case"paragraph":{let G=this.renderInlineTokens($.tokens||[],Y);if(X.push(G),Z&&Z!=="list"&&Z!=="space")X.push("");break}case"text":X.push(this.renderInlineTokens([$],Y));break;case"latexBlock":{let G=$,j=!G.pending&&this.options.renderLatex!==!1?F1(G.text,{display:!0})??G.raw.trim():G.raw.trim();for(let U of j.split(`
|
|
38
|
+
`))X.push(this.applyDefaultStyle(U));if(Z&&Z!=="space")X.push("");break}case"code":{let G=this.theme.codeBlockIndent??" ";if(X.push(this.theme.codeBlockBorder(`\`\`\`${$.lang||""}`)),this.theme.highlightCode){let j=this.theme.highlightCode($.text,$.lang);for(let U of j)X.push(`${G}${U}`)}else{let j=$.text.split(`
|
|
39
|
+
`);for(let U of j)X.push(`${G}${this.theme.codeBlock(U)}`)}if(X.push(this.theme.codeBlockBorder("```")),Z&&Z!=="space")X.push("");break}case"list":{let G=this.renderList($,0,J,Y);X.push(...G);break}case"table":{let G=this.renderTable($,J,Z,Y);X.push(...G);break}case"blockquote":{let G=(_)=>this.theme.quote(this.theme.italic(_)),j=this.getStylePrefix(G),U=(_)=>{if(!j)return G(_);let B=_.replace(/\x1b\[0m/g,`\x1B[0m${j}`);return G(B)},Q=Math.max(1,J-2),z={applyText:(_)=>_,stylePrefix:j},K=$.tokens||[],N=[];for(let _=0;_<K.length;_++){let B=K[_],H=K[_+1];N.push(...this.renderToken(B,Q,H?.type,z))}while(N.length>0&&N[N.length-1]==="")N.pop();for(let _ of N){let B=U(_),H=a(B,Q);for(let q of H)X.push(this.theme.quoteBorder("\u2502 ")+q)}if(Z&&Z!=="space")X.push("");break}case"hr":if(X.push(this.theme.hr("\u2500".repeat(Math.min(J,80)))),Z&&Z!=="space")X.push("");break;case"html":if("raw"in $&&typeof $.raw==="string")X.push(this.applyDefaultStyle($.raw.trim()));break;case"space":X.push("");break;default:if("text"in $&&typeof $.text==="string")X.push($.text)}return X}renderInlineTokens($,J){let Z="",Y=J??this.getDefaultInlineStyleContext(),{applyText:X,stylePrefix:G}=Y,j=(U)=>{return U.split(`
|
|
40
|
+
`).map((z)=>X(z)).join(`
|
|
41
|
+
`)};for(let U of $)switch(U.type){case"latex":{let Q=U,z=!Q.pending&&this.options.renderLatex!==!1?F1(Q.text)??Q.raw:Q.raw;Z+=j(z);break}case"escape":Z+=j(this.options.preserveBackslashEscapes?U.raw:U.text);break;case"text":if(U.tokens&&U.tokens.length>0)Z+=this.renderInlineTokens(U.tokens,Y);else Z+=j(U.text);break;case"paragraph":Z+=this.renderInlineTokens(U.tokens||[],Y);break;case"strong":{let Q=this.renderInlineTokens(U.tokens||[],Y);Z+=this.theme.bold(Q)+G;break}case"em":{let Q=this.renderInlineTokens(U.tokens||[],Y);Z+=this.theme.italic(Q)+G;break}case"codespan":Z+=this.theme.code(U.text)+G;break;case"link":{let Q=this.renderInlineTokens(U.tokens||[],Y),z=this.theme.link(this.theme.underline(Q));if(A0().hyperlinks)Z+=i1(z,U.href)+G;else{let K=U.href.startsWith("mailto:")?U.href.slice(7):U.href;if(U.text===U.href||U.text===K)Z+=z+G;else Z+=z+this.theme.linkUrl(` (${U.href})`)+G}break}case"br":Z+=`
|
|
42
|
+
`;break;case"del":{let Q=this.renderInlineTokens(U.tokens||[],Y);Z+=this.theme.strikethrough(Q)+G;break}case"html":if("raw"in U&&typeof U.raw==="string")Z+=j(U.raw);break;default:if("text"in U&&typeof U.text==="string")Z+=j(U.text)}while(G&&Z.endsWith(G))Z=Z.slice(0,-G.length);return Z}getOrderedListMarker($){let J=/^(?: {0,3})(\d{1,9}[.)])[ \t]+/.exec($.raw);return J?`${J[1]} `:void 0}getUnorderedListMarker($){let J=/^(?: {0,3})([-+*])(?:[ \t]+|(?=\r?\n|$))/.exec($.raw);return J?`${J[1]} `:void 0}renderList($,J,Z,Y){let X=[],G=" ".repeat(J),j=typeof $.start==="number"?$.start:1;for(let U=0;U<$.items.length;U++){let Q=$.items[U],z=U===$.items.length-1,K=$.ordered?this.options.preserveOrderedListMarkers?this.getOrderedListMarker(Q)??`${j+U}. `:`${j+U}. `:this.options.preserveOrderedListMarkers?this.getUnorderedListMarker(Q)??"- ":"- ",N=Q.task?`[${Q.checked?"x":" "}] `:"",_=K+N,B=G+this.theme.listBullet(_),H=G+" ".repeat(M(_)),q=Math.max(1,Z-M(B)),A=!1;for(let O of Q.tokens){if(O.type==="list"){X.push(...this.renderList(O,J+1,Z,Y)),A=!0;continue}let P=this.renderToken(O,q,void 0,Y);for(let E of P)for(let C of a(E,q)){let S=A?H:B;X.push(S+C),A=!0}}if(!A)X.push(B);if($.loose&&!z)X.push("")}return X}getLongestWordWidth($,J){let Z=$.split(/\s+/).filter((X)=>X.length>0),Y=0;for(let X of Z)Y=Math.max(Y,M(X));if(J===void 0)return Y;return Math.min(Y,J)}wrapCellText($,J,Z=""){let Y=a($,Math.max(1,J));return Y.map((X,G)=>{let j=G<Y.length-1?"\x1B[22;23;24;25;27;28;29;39m":"";return`${X}${j}${Z}`})}renderTable($,J,Z,Y){let X=[],G=$.header.length;if(G===0)return X;let j=3*G+1,U=J-j;if(U<G){let S=$.raw?a($.raw,J):[];if(Z&&Z!=="space")S.push("");return S}let Q=30,z=[],K=[];for(let S=0;S<G;S++){let I=this.renderInlineTokens($.header[S].tokens||[],Y);z[S]=M(I),K[S]=Math.max(1,this.getLongestWordWidth(I,Q))}for(let S of $.rows)for(let I=0;I<S.length;I++){let k=this.renderInlineTokens(S[I].tokens||[],Y);z[I]=Math.max(z[I]||0,M(k)),K[I]=Math.max(K[I]||1,this.getLongestWordWidth(k,Q))}let N=K,_=N.reduce((S,I)=>S+I,0);if(_>U){N=Array(G).fill(1);let S=U-G;if(S>0){let I=K.reduce((V,L)=>V+Math.max(0,L-1),0),k=K.map((V)=>{let L=Math.max(0,V-1);return I>0?Math.floor(L/I*S):0});for(let V=0;V<G;V++)N[V]+=k[V]??0;let f=k.reduce((V,L)=>V+L,0),F=S-f;for(let V=0;F>0&&V<G;V++)N[V]++,F--}_=N.reduce((I,k)=>I+k,0)}let B=z.reduce((S,I)=>S+I,0)+j,H;if(B<=J)H=z.map((S,I)=>Math.max(S,N[I]));else{let S=z.reduce((F,V,L)=>{return F+Math.max(0,V-N[L])},0),I=Math.max(0,U-_);H=N.map((F,V)=>{let L=z[V],b=Math.max(0,L-F),w=0;if(S>0)w=Math.floor(b/S*I);return F+w});let k=H.reduce((F,V)=>F+V,0),f=U-k;while(f>0){let F=!1;for(let V=0;V<G&&f>0;V++)if(H[V]<z[V])H[V]++,f--,F=!0;if(!F)break}}let q=H.map((S)=>"\u2500".repeat(S));X.push(`\u250C\u2500${q.join("\u2500\u252C\u2500")}\u2500\u2510`);let A=$.header.map((S,I)=>{let k=this.renderInlineTokens(S.tokens||[],Y);return this.wrapCellText(k,H[I],Y?.stylePrefix)}),O=Math.max(...A.map((S)=>S.length));for(let S=0;S<O;S++){let I=A.map((k,f)=>{let F=k[S]||"",V=F+" ".repeat(Math.max(0,H[f]-M(F)));return this.theme.bold(V)});X.push(`\u2502 ${I.join(" \u2502 ")} \u2502`)}let E=`\u251C\u2500${H.map((S)=>"\u2500".repeat(S)).join("\u2500\u253C\u2500")}\u2500\u2524`;X.push(E);for(let S=0;S<$.rows.length;S++){let k=$.rows[S].map((F,V)=>{let L=this.renderInlineTokens(F.tokens||[],Y);return this.wrapCellText(L,H[V],Y?.stylePrefix)}),f=Math.max(...k.map((F)=>F.length));for(let F=0;F<f;F++){let V=k.map((L,b)=>{let w=L[F]||"";return w+" ".repeat(Math.max(0,H[b]-M(w)))});X.push(`\u2502 ${V.join(" \u2502 ")} \u2502`)}if(S<$.rows.length-1)X.push(E)}let C=H.map((S)=>"\u2500".repeat(S));if(X.push(`\u2514\u2500${C.join("\u2500\u2534\u2500")}\u2500\u2518`),Z&&Z!=="space")X.push("");return X}}var S6,f8,W6,N$;var x8=T(()=>{z$();_0();g();S6=/^(~~)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/;f8=class f8 extends D6{del($){let J=S6.exec($);if(!J)return;let Z=J[2];return{type:"del",raw:J[0],text:Z,tokens:this.lexer.inlineTokens(Z)}}};W6=[{name:"latexBlock",level:"block",start($){let J=/(?:^|\n) {0,3}(?:\$\$|\\\[)/.exec($);return J?J.index+(J[0].startsWith(`
|
|
43
|
+
`)?1:0):void 0},tokenizer:I6},{name:"latex",level:"inline",start($){let J=[$.indexOf("$"),$.indexOf("\\("),$.indexOf("\\[")].filter((Z)=>Z>=0);return J.length>0?Math.min(...J):void 0},tokenizer:T6}];N$=new E6;N$.setOptions({tokenizer:new f8});N$.use({extensions:[...W6]})});var _$=T(()=>{q1();Y0()});var p8=T(()=>{X1();N0();g();A1()});var u8=()=>{};class m0{text;paddingX;paddingY;constructor($,J=0,Z=0){this.text=$,this.paddingX=J,this.paddingY=Z}invalidate(){}render($){let J=[],Z=" ".repeat($);for(let B=0;B<this.paddingY;B++)J.push(Z);let Y=Math.max(1,$-this.paddingX*2),X=this.text,G=this.text.indexOf(`
|
|
44
|
+
`);if(G!==-1)X=this.text.substring(0,G);let j=m(X,Y),U=" ".repeat(this.paddingX),Q=" ".repeat(this.paddingX),z=U+j+Q,K=M(z),N=Math.max(0,$-K),_=z+" ".repeat(N);J.push(_);for(let B=0;B<this.paddingY;B++)J.push(Z);return J}}var m8=T(()=>{g()});var h8=T(()=>{O1()});class l8{input=new V0;onQueryChange;resultCount=0;resultIndex=-1;_focused=!1;constructor($){this.onQueryChange=$}get focused(){return this._focused}set focused($){this._focused=$,this.input.focused=$}setResult($,J){this.resultIndex=$,this.resultCount=J}handleInput($){let J=this.input.getValue();this.input.handleInput($);let Z=this.input.getValue();if(Z!==J)this.onQueryChange(Z)}invalidate(){this.input.invalidate()}render($){let J=Math.max(1,$),Z=" Find transcript",X=!this.input.getValue()?"":this.resultCount===0?"No matches ":`${this.resultIndex+1}/${this.resultCount} `,G=M(" Find transcript"),j=M(X),U=" ".repeat(Math.max(1,J-G-j)),Q=m(` Find transcript${U}${X}`,J,""),z=" ".repeat(Math.max(0,J-M(Q)));return[`\x1B[7m${Q}${z}\x1B[27m`,...this.input.render(J)]}}var dZ;var d8=T(()=>{A1();g();dZ=S0()});var o8=T(()=>{g()});var s8=T(()=>{O1();q1();_0();Y0();g()});var S4;var r8=T(()=>{d8();o8();_$();N0();z0();s8();_0();Y0();g();S4=P0()});import*as Q0 from"fs";import*as E0 from"path";class E1{buffer="";writtenChars=0;write;constructor($){this.write=$}append($){let J=0;while(J<$.length){let Z=a8-this.buffer.length;if(Z===0){this.flush();continue}let Y=Math.min($.length,J+Z);if(Y<$.length&&$.charCodeAt(Y-1)>=55296&&$.charCodeAt(Y-1)<=56319&&$.charCodeAt(Y)>=56320&&$.charCodeAt(Y)<=57343)Y--;if(Y===J){this.flush();continue}if(this.buffer+=$.slice(J,Y),J=Y,this.buffer.length===a8)this.flush()}}flush(){if(!this.buffer)return;this.write(this.buffer),this.writtenChars+=this.buffer.length,this.buffer=""}get length(){return this.writtenChars+this.buffer.length}}function i8($){let J=$.indexOf(n8);if(J===-1)return;let Z=J+n8.length,Y=$.indexOf(";",Z);if(Y===-1)return;let X=[],G=1;for(let j of $.slice(Z,Y).split(",")){let[U,Q]=j.split("=",2);if(Q===void 0)continue;let z=Number(Q);if(!Number.isInteger(z)||z<=0||z>4294967295)continue;if(U==="i")X.push(z);else if(U==="r")G=z}return{ids:X,rows:G}}function H$($){return i8($)?.ids??[]}function y6($){return i8($)?.rows??1}function w6(){return Boolean(process.env.TERMUX_VERSION)}var n8="\x1B_G",a8=1048576,h0;var t8=T(()=>{_0();Y0();g();h0=class h0 extends g0{mode="regular";previousLines=[];previousKittyImageIds=new Set;previousWidth=0;previousHeight=0;cursorRow=0;hardwareCursorRow=0;maxLinesRendered=0;previousViewportTop=0;captureRenderState(){return{previousLines:[...this.previousLines],previousWidth:this.previousWidth,previousHeight:this.previousHeight,cursorRow:this.cursorRow,hardwareCursorRow:this.hardwareCursorRow,maxLinesRendered:this.maxLinesRendered,previousViewportTop:this.previousViewportTop}}restoreRenderState($){this.previousLines=$.previousLines.map((J)=>s(J)?"":J),this.previousKittyImageIds=new Set,this.previousWidth=$.previousWidth,this.previousHeight=$.previousHeight,this.cursorRow=$.cursorRow,this.hardwareCursorRow=$.hardwareCursorRow,this.maxLinesRendered=$.maxLinesRendered,this.previousViewportTop=$.previousViewportTop}resetRenderState(){this.previousLines=[],this.previousWidth=-1,this.previousHeight=-1,this.cursorRow=0,this.hardwareCursorRow=0,this.maxLinesRendered=0,this.previousViewportTop=0}beforeTerminalStop($){if($.preserveScreen||this.previousLines.length===0)return;this.terminal.write(" ");let Z=this.previousLines.length-this.hardwareCursorRow;if(Z>0)this.terminal.write(`\x1B[${Z}B`);else if(Z<0)this.terminal.write(`\x1B[${-Z}A`);this.terminal.write(`\r
|
|
45
|
+
`)}collectKittyImageIds($){let J=new Set;for(let Z of $)for(let Y of H$(Z))J.add(Y);return J}deleteKittyImages($){let J="";for(let Z of $)J+=K1(Z);return J}getKittyImageReservedRows($,J,Z=$.length-1){let Y=y6($[J]??"");if(Y<=1)return 1;let X=Math.min(Y,Z-J+1,$.length-J),G=1;while(G<X){let j=$[J+G]??"";if(s(j)||M(j)>0)break;G++}return G}expandChangedRangeForKittyImages($,J,Z){let Y=$,X=J,G=(j)=>{for(let U=0;U<j.length;U++){if(H$(j[U]).length===0)continue;let Q=U+this.getKittyImageReservedRows(j,U)-1;if(U>=$||U<=J&&Q>=$)Y=Math.min(Y,U),X=Math.max(X,Q)}};return G(this.previousLines),G(Z),{firstChanged:Y,lastChanged:X}}deleteChangedKittyImages($,J){if($<0||J<$)return"";let Z=new Set,Y=Math.min(J,this.previousLines.length-1);for(let X=$;X<=Y;X++)for(let G of H$(this.previousLines[X]??""))Z.add(G);return this.deleteKittyImages(Z)}doRender(){if(this.stopped)return;let $=this.terminal.columns,J=this.terminal.rows,Z=this.previousWidth!==0&&this.previousWidth!==$,Y=this.previousHeight!==0&&this.previousHeight!==J,X=this.previousHeight>0?this.previousViewportTop+this.previousHeight:J,G=Y?Math.max(0,X-J):this.previousViewportTop,j=G,U=this.hardwareCursorRow,Q=(F)=>{let V=U-G;return F-j-V},z=this.render($);if(this.hasOverlayEntries)z=this.compositeOverlays(z,$,J);let K=this.extractCursorPosition(z,J);z=this.applyLineResets(z);let N=(F)=>{this.fullRedrawCount+=1;let V=new E1((b)=>this.terminal.write(b));if(V.append("\x1B[?2026h"),F)V.append(this.deleteKittyImages(this.previousKittyImageIds)),V.append("\x1B[2J\x1B[H\x1B[3J");for(let b=0;b<z.length;b++){if(b>0)V.append(`\r
|
|
46
|
+
`);let w=z[b],h=s(w)?this.getKittyImageReservedRows(z,b):1;if(h>1&&h<=J){for(let L0=1;L0<h;L0++)V.append(`\r
|
|
47
|
+
`);V.append(`\x1B[${h-1}A`),V.append(w),V.append(`\x1B[${h-1}B`),b+=h-1;continue}V.append(w)}if(V.append("\x1B[?2026l"),V.flush(),this.cursorRow=Math.max(0,z.length-1),this.hardwareCursorRow=this.cursorRow,F)this.maxLinesRendered=z.length;else this.maxLinesRendered=Math.max(this.maxLinesRendered,z.length);let L=Math.max(J,z.length);this.previousViewportTop=Math.max(0,L-J),this.positionHardwareCursor(K,z.length),this.previousLines=z,this.previousKittyImageIds=this.collectKittyImageIds(z),this.previousWidth=$,this.previousHeight=J},_=process.env.PI_DEBUG_REDRAW==="1",B=(F)=>{if(!_)return;let V=E0.join(this.logDirectory,"pi-debug.log"),L=`[${new Date().toISOString()}] fullRender: ${F} (prev=${this.previousLines.length}, new=${z.length}, height=${J})
|
|
48
|
+
`;Q0.mkdirSync(E0.dirname(V),{recursive:!0}),Q0.appendFileSync(V,L)};if(this.previousLines.length===0&&!Z&&!Y){B("first render"),N(!1);return}if(Z){B(`terminal width changed (${this.previousWidth} -> ${$})`),N(!0);return}if(Y&&!w6()){B(`terminal height changed (${this.previousHeight} -> ${J})`),N(!0);return}if(this.getClearOnShrink()&&z.length<this.maxLinesRendered&&!this.hasOverlayEntries){B(`clearOnShrink (maxLinesRendered=${this.maxLinesRendered})`),N(!0);return}let H=-1,q=-1,A=Math.max(z.length,this.previousLines.length);for(let F=0;F<A;F++){let V=F<this.previousLines.length?this.previousLines[F]:"",L=F<z.length?z[F]:"";if(V!==L){if(H===-1)H=F;q=F}}let O=z.length>this.previousLines.length;if(O){if(H===-1)H=this.previousLines.length;q=z.length-1}if(H!==-1){let F=this.expandChangedRangeForKittyImages(H,q,z);H=F.firstChanged,q=F.lastChanged}let P=O&&H===this.previousLines.length&&H>0;if(H===-1){this.positionHardwareCursor(K,z.length),this.previousViewportTop=G,this.previousHeight=J;return}if(H>=z.length){if(this.previousLines.length>z.length){let F=new E1((h)=>this.terminal.write(h));F.append("\x1B[?2026h"),F.append(this.deleteChangedKittyImages(H,q));let V=Math.max(0,z.length-1);if(V<G){B(`deleted lines moved viewport up (${V} < ${G})`),N(!0);return}let L=Q(V);if(L>0)F.append(`\x1B[${L}B`);else if(L<0)F.append(`\x1B[${-L}A`);F.append("\r");let b=this.previousLines.length-z.length;if(b>J){B(`extraLines > height (${b} > ${J})`),N(!0);return}let w=z.length===0?0:1;if(b>0&&w>0)F.append(`\x1B[${w}B`);for(let h=0;h<b;h++)if(F.append("\r\x1B[2K"),h<b-1)F.append("\x1B[1B");let U0=Math.max(0,b-1+w);if(U0>0)F.append(`\x1B[${U0}A`);F.append("\x1B[?2026l"),F.flush(),this.cursorRow=V,this.hardwareCursorRow=V}this.positionHardwareCursor(K,z.length),this.previousLines=z,this.previousKittyImageIds=this.collectKittyImageIds(z),this.previousWidth=$,this.previousHeight=J,this.previousViewportTop=G;return}if(H<G){B(`firstChanged < viewportTop (${H} < ${G})`),N(!0);return}let E=new E1((F)=>this.terminal.write(F));E.append("\x1B[?2026h"),E.append(this.deleteChangedKittyImages(H,q));let C=G+J-1,S=P?H-1:H;if(S>C){let F=Math.max(0,Math.min(J-1,U-G)),V=J-1-F;if(V>0)E.append(`\x1B[${V}B`);let L=S-C;E.append(`\r
|
|
49
|
+
`.repeat(L)),G+=L,j+=L,U=S}let I=Q(S);if(I>0)E.append(`\x1B[${I}B`);else if(I<0)E.append(`\x1B[${-I}A`);E.append(P?`\r
|
|
50
|
+
`:"\r");let k=Math.min(q,z.length-1);for(let F=H;F<=k;F++){if(F>H)E.append(`\r
|
|
51
|
+
`);let V=z[F],L=s(V),b=L?this.getKittyImageReservedRows(z,F,k):1;if(b>1){let w=F-j;if(w<0||w+b>J){B(`kitty image pre-clear would scroll (${w} + ${b} > ${J})`),N(!0);return}E.append("\x1B[2K");for(let U0=1;U0<b;U0++)E.append(`\r
|
|
52
|
+
\x1B[2K`);E.append(`\x1B[${b-1}A`),E.append(V),E.append(`\x1B[${b-1}B`),F+=b-1;continue}if(E.append("\x1B[2K"),!L&&M(V)>$){let w=E0.join(this.logDirectory,"pi-crash.log"),U0=[`Crash at ${new Date().toISOString()}`,`Terminal width: ${$}`,`Line ${F} visible width: ${M(V)}`,"","=== All rendered lines ===",...z.map((L0,U3)=>`[${U3}] (w=${M(L0)}) ${L0}`),""].join(`
|
|
53
|
+
`);Q0.mkdirSync(E0.dirname(w),{recursive:!0}),Q0.writeFileSync(w,U0),this.stop();let h=[`Rendered line ${F} exceeds terminal width (${M(V)} > ${$}).`,"","This is likely caused by a custom TUI component not truncating its output.","Use visibleWidth() to measure and truncateToWidth() to truncate lines.","",`Debug log written to: ${w}`].join(`
|
|
54
|
+
`);throw Error(h)}E.append(V)}let f=k;if(this.previousLines.length>z.length){if(k<z.length-1){let V=z.length-1-k;E.append(`\x1B[${V}B`),f=z.length-1}let F=this.previousLines.length-z.length;for(let V=z.length;V<this.previousLines.length;V++)E.append(`\r
|
|
55
|
+
\x1B[2K`);E.append(`\x1B[${F}A`)}if(E.append("\x1B[?2026l"),process.env.PI_TUI_DEBUG==="1"){Q0.mkdirSync("/tmp/tui",{recursive:!0});let V=E0.join("/tmp/tui",`render-${Date.now()}-${Math.random().toString(36).slice(2)}.log`),L=[`firstChanged: ${H}`,`viewportTop: ${j}`,`cursorRow: ${this.cursorRow}`,`height: ${J}`,`lineDiff: ${I}`,`hardwareCursorRow: ${U}`,`renderEnd: ${k}`,`finalCursorRow: ${f}`,`cursorPos: ${JSON.stringify(K)}`,`newLines.length: ${z.length}`,`previousLines.length: ${this.previousLines.length}`,"","=== newLines ===",JSON.stringify(z,null,2),"","=== previousLines ===",JSON.stringify(this.previousLines,null,2),"","=== buffer ===",`[${E.length} chars written in bounded chunks]`].join(`
|
|
56
|
+
`);Q0.writeFileSync(V,L)}E.flush(),this.cursorRow=Math.max(0,z.length-1),this.hardwareCursorRow=f,this.maxLinesRendered=Math.max(this.maxLinesRendered,z.length),this.previousViewportTop=Math.max(G,f-J+1),this.positionHardwareCursor(K,z.length),this.previousLines=z,this.previousKittyImageIds=this.collectKittyImageIds(z),this.previousWidth=$,this.previousHeight=J}positionHardwareCursor($,J){if(!$||J<=0){this.terminal.hideCursor();return}let Z=Math.max(0,Math.min($.row,J-1)),Y=Math.max(0,$.col),X=Z-this.hardwareCursorRow,G="";if(X>0)G+=`\x1B[${X}B`;else if(X<0)G+=`\x1B[${-X}A`;if(G+=`\x1B[${Y+1}G`,G)this.terminal.write(G);if(this.hardwareCursorRow=Z,this.getShowHardwareCursor())this.terminal.showCursor();else this.terminal.hideCursor()}}});import{Marked as t4}from"marked";var B$=T(()=>{n$();Y8();Q8();L8();v8();b8();A1();l1();x8();_$();Z$();p8();u8();c1();m8();h8();X1();N0();z0();z$();C1();x$();r1();_0();Y0();r8();t8();g()});var B0=($,J)=>(Z)=>`\x1B[${$}m${Z}\x1B[${J}m`,W,x,c0,e8,$3;var q$=T(()=>{W={bold:B0("1","22"),dim:B0("2","22"),italic:B0("3","23"),underline:B0("4","24"),inverse:B0("7","27"),strike:B0("9","29"),fg:($)=>B0(`38;5;${$}`,"39"),bg:($)=>B0(`48;5;${$}`,"49")},x={accent:W.fg(75),accentDim:W.fg(67),ok:W.fg(114),warn:W.fg(215),err:W.fg(203),muted:W.dim,code:W.fg(180),link:W.fg(75)},c0={selectedPrefix:($)=>x.accent($),selectedText:($)=>W.bold($),description:($)=>W.dim($),scrollInfo:($)=>W.dim($),noMatch:($)=>W.dim($)},e8={borderColor:($)=>x.accentDim($),selectList:c0},$3={heading:($)=>W.bold(x.accent($)),link:($)=>x.link(W.underline($)),linkUrl:($)=>W.dim($),code:($)=>x.code($),codeBlock:($)=>x.code($),codeBlockBorder:($)=>W.dim($),quote:($)=>W.italic(W.dim($)),quoteBorder:($)=>W.dim($),hr:($)=>W.dim($),listBullet:($)=>x.accent($),bold:($)=>W.bold($),italic:($)=>W.italic($),strikethrough:($)=>W.strike($),underline:($)=>W.underline($)}});function D0($,J){let Z=m($,J-2,"\u2026");return` ${Z}${" ".repeat(Math.max(0,J-1-M(Z)))}`}class O${title;diff;list;rows;constructor($,J,Z,Y){this.title=$;this.diff=J;this.list=Z;this.rows=Y}handleInput($){this.list.handleInput($)}invalidate(){this.list.invalidate()}render($){let J=Math.max(4,this.rows()-12),Z=this.diff;if(Z.length>J){let Y=f6.exec(Z[Z.length-1]),X=Z.length-J+(Y?Number(Y[1])-1:0);Z=[...Z.slice(0,J),`\u2026 +${X} more line${X===1?"":"s"}`]}return[D0(x.warn(this.title),$),...Z.map((Y,X)=>D0(g6(Y,X),$))," ".repeat($),...this.list.render($)]}}function g6($,J){if(J===0&&$.startsWith("--- ")||J===1&&$.startsWith("+++ "))return W.dim($);let Z=$[0];return Z==="+"?x.ok($):Z==="-"?x.err($):Z===" "?$:W.dim($)}class F${question;list;optionCount;freeText;rows;busy;typing;input=new V0;constructor($,J,Z,Y,X,G){this.question=$;this.list=J;this.optionCount=Z;this.freeText=Y;this.rows=X;this.busy=G;this.typing=Z===0}get isTyping(){return this.typing}setTyping($){this.typing=$}handleInput($){if(this.typing)this.input.handleInput($);else this.list.handleInput($)}invalidate(){this.list.invalidate(),this.input.invalidate()}render($){let J=this.typing?1:this.optionCount+(this.freeText?1:0)+1,Z=Math.max(2,this.rows()-9-J),Y=a(this.question,$-2);if(Y.length>Z)Y=[...Y.slice(0,Z-1),W.dim(`\u2026 +${Y.length-Z+1} more lines`)];let X=this.busy()?"Esc stop the run":"Esc skip",G=this.typing?[D0(this.input.render($-2)[0]??"",$),D0(W.dim(this.optionCount>0?"Enter sends \xB7 Esc back to the options":`Enter sends \xB7 ${X}`),$)]:[...this.list.render($),D0(W.dim(`\u2191\u2193 choose \xB7 Enter answer \xB7 ${X}`),$)];return[D0(x.warn("question"),$),...Y.map((j)=>D0(j,$))," ".repeat($),...G]}}var f6,A$="\x00free-text",V$="\x00skip-question";var J3=T(()=>{B$();q$();f6=/^\u2026 \+(\d+) more line/});class M${inner;pending=[];visible=!1;discarded=!1;constructor($){this.inner=$}get columns(){return this.inner.columns}get rows(){return this.inner.rows}get kittyProtocolActive(){return this.inner.kittyProtocolActive}prepare($){this.pending=[],$()}reveal($,J){if(this.discarded||this.visible)return;let Z=this.pending;this.pending=[];let Y=String.fromCharCode(27);this.inner.write(`${Y}[?2026h`);try{J?.(),this.visible=!0,$();for(let X of Z)X()}finally{this.inner.write(`${Y}[?2026l`)}}emit($){if(this.discarded)return;if(this.visible)$();else this.pending.push($)}start($,J){if(this.visible)this.inner.start($,J)}stop(){if(this.discarded=!0,this.pending=[],this.visible)this.inner.stop()}drainInput($,J){return this.visible?this.inner.drainInput($,J):Promise.resolve()}write($){this.emit(()=>this.inner.write($))}moveBy($){this.emit(()=>this.inner.moveBy($))}hideCursor(){this.emit(()=>this.inner.hideCursor())}showCursor(){this.emit(()=>this.inner.showCursor())}clearLine(){this.emit(()=>this.inner.clearLine())}clearFromCursor(){this.emit(()=>this.inner.clearFromCursor())}clearScreen(){this.emit(()=>this.inner.clearScreen())}setTitle($){this.emit(()=>this.inner.setTitle($))}setProgress($){this.emit(()=>this.inner.setProgress($))}}var Z3=()=>{};var c6={};w$(c6,{PiTuiRenderer:()=>Q3});import{existsSync as u6}from"fs";import{join as m6}from"path";function D1($,J=h6){let Z=$.replace(/\s+/g," ").trim();return Z.length>J?`${Z.slice(0,J-1)}\u2026`:Z}class Q3{terminal;cwd;commands=[];tui=null;editor=null;statusLine=null;statusText="";loader=null;hooks=null;unsubscribeInput=null;toolCards=new Map;pendingPickers=new Set;constructor($){this.terminal=$?.terminal??new v0,this.cwd=$?.cwd??process.cwd()}ui(){if(!this.tui)throw Error("PiTuiRenderer: start() must be called first");return this.tui}requireEditor(){if(!this.editor)throw Error("PiTuiRenderer: start() must be called first");return this.editor}insertTranscript($){let J=this.tui,Z=this.loader??this.editor;if(!J||!Z)return;let Y=J.children.indexOf(Z);J.children.splice(Y<0?J.children.length:Y,0,$),J.requestRender()}start($,J){if(this.tui)return;this.hooks=$;let Z=J?.beforeReveal?new M$(this.terminal):void 0,Y=Z?new E$(Z):new h0(this.terminal);this.tui=Y,Y.addChild(new Z0(W.dim("rovecode"),1,0));let X=new B1(Y,e8);this.editor=X,X.onSubmit=(j)=>{let U=j.trim();if(!U)return;let Q=X3(U);if(Q.length===0){$.onSubmit(U);return}let z=G3(U,{cwd:this.cwd,mentions:Q,resolve:(K)=>u6(m6(this.cwd,K))?K.replace(/\\/g,"/"):null});for(let K of z.notes)this.addSystemNote(K,"warn");$.onSubmit(z.text)},X.setAutocompleteProvider(new b0(this.commands,this.cwd)),Y.addChild(X);let G=new m0(this.statusText,1,0);if(this.statusLine=G,Y.addChild(G),Y.setFocus(X),this.unsubscribeInput=Y.addInputListener((j)=>{if(d(j,r0.ctrl("c")))return $.onExit(),{consume:!0};if(this.loader&&!Y.hasOverlay()&&d(j,r0.escape))return this.loader.handleInput(j),{consume:!0};return}),J?.beforeFirstRender?.(),Z&&Y instanceof E$&&J?.beforeReveal)return Z.prepare(()=>Y.renderNow(!0)),J.beforeReveal().then(()=>{if(this.tui!==Y)return;Z.prepare(()=>Y.renderNow(!0)),Z.reveal(()=>Y.reveal(),J.onReveal)});J?.onReveal?.(),Y.start()}stop(){let $=this.tui;if(!$)return;if(this.loader)this.loader.stop(),this.loader=null;if(this.unsubscribeInput)this.unsubscribeInput(),this.unsubscribeInput=null;for(let J of this.pendingPickers)J();this.pendingPickers.clear(),$.stop(),this.tui=null,this.editor=null,this.statusLine=null,this.hooks=null,this.toolCards.clear()}setCommands($){if(this.commands=$.slice(),this.editor)this.editor.setAutocompleteProvider(new b0(this.commands,this.cwd))}addUser($){let{text:J,files:Z}=j3($);this.insertTranscript(new Z0(W.dim("> ")+J,1,0));for(let Y of Z)this.insertTranscript(new Z0(W.dim(` \u25A4 attached ${Y}`),1,0))}addSystemNote($,J="info"){let Z=J==="warn"?x.warn:J==="error"?x.err:x.muted;this.insertTranscript(new Z0(Z($),1,0))}beginAssistant(){let $=this.tui;if(!$)return{append:()=>{},done:()=>{}};let J=new M1("",1,1,$3);this.insertTranscript(J);let Z="";return{append:(Y)=>{Z+=Y,J.setText(Z),$.requestRender()},done:()=>{}}}toolStart($,J,Z){let Y=D1(`\u2192 ${J} ${Z}`),X=new Z0(W.dim(Y),1,0);this.toolCards.set($,{line:X,tool:J,base:Y}),this.insertTranscript(X)}toolUpdate($,J){let Z=this.toolCards.get($);if(!Z)return;Z.line.setText(W.dim(D1(`${Z.base} \xB7 ${J}`))),this.tui?.requestRender()}toolEnd($,J,Z,Y){let X=this.toolCards.get($);if(!X)return;this.toolCards.delete($);let G=J?x.ok:x.err,j=J?"ok":"FAIL";X.line.setText(G(D1(`\u2190 ${j} ${X.tool} (${Y}ms) ${Z}`))),this.tui?.requestRender()}pickWith($,J,Z){let Y=this.tui,X=this.editor;if(!Y||!X)return Promise.resolve(null);return new Promise((G)=>{let j=Y.showOverlay($,{width:Z,anchor:"center"}),U=!1,Q=(K)=>{if(U)return;if(U=!0,this.pendingPickers.delete(z),j.hide(),this.tui)Y.setFocus(X),Y.requestRender();G(K)},z=()=>Q(null);this.pendingPickers.add(z),J.onSelect=(K)=>Q(K.value),J.onCancel=()=>Q(null)})}pickOne($,J){if(!this.tui||$.length===0)return Promise.resolve(null);if(J)this.addSystemNote(J);let Z=new H0($.map((Y)=>({value:Y.value,label:Y.label,description:Y.description})),Math.min($.length,8),c0);return this.pickWith(Z,Z,64)}async askApproval($,J,Z){this.addSystemNote(`approval needed: ${$} ${J}`,"warn");let Y=[{value:"once",label:"allow once",description:"run this call only"},{value:"always",label:"always",description:"allow this tool for the session"},{value:"deny",label:"deny",description:"reject this call"}],X;if(Z){let G=new H0(Y,Y.length,c0),j=new O$(`approval needed: ${$}`,Z.split(`
|
|
57
|
+
`),G,()=>this.terminal.rows);X=await this.pickWith(j,G,Math.max(40,Math.min(this.terminal.columns-4,100)))}else X=await this.pickOne(Y);return X==="once"||X==="always"?X:"deny"}askQuestion($,J){let Z=this.tui,Y=this.editor;if(!Z||!Y||J?.aborted)return Promise.resolve(null);if(Z.hasOverlay())return Promise.reject(Error("a question or approval overlay is already open"));let X=$.options??[],G=$.allowFreeText!==!1,j=X.map((z,K)=>({value:String(K),label:z}));if(G)j.push({value:A$,label:"type an answer\u2026"});j.push({value:V$,label:"skip this question"});let U=new H0(j,Math.max(1,j.length),c0),Q=new F$($.question,U,X.length,G,()=>this.terminal.rows,()=>this.loader!==null);return this.addSystemNote(`question: ${D1($.question)}`,"warn"),new Promise((z)=>{let K=Z.showOverlay(Q,{width:Math.max(40,Math.min(this.terminal.columns-4,100)),anchor:"center"}),N=!1,_=(q)=>{if(N)return;if(N=!0,this.pendingPickers.delete(B),J?.removeEventListener("abort",B),K.hide(),this.tui)Z.setFocus(Y),Z.requestRender();z(q)},B=()=>_(null);this.pendingPickers.add(B),J?.addEventListener("abort",B,{once:!0});let H=()=>{if(this.loader)this.hooks?.onInterrupt();else _(null)};U.onCancel=H,U.onSelect=(q)=>{if(q.value===V$){_(null);return}if(q.value===A$){Q.setTyping(!0),Z.requestRender();return}let A=Number(q.value);_({choice:A,label:X[A]})},Q.input.onEscape=()=>{if(X.length>0)Q.setTyping(!1),Z.requestRender();else H()},Q.input.onSubmit=(q)=>{let A=q.trim();if(A)_({text:A})}})}clearTranscript(){let $=this.tui,J=this.loader??this.editor;if(!$||!J)return;let Z=$.children.indexOf(J);if(Z>1)$.children.splice(1,Z-1);this.toolCards.clear(),$.requestRender()}prefillEditor($){let J=this.tui,Z=this.editor;if(!J||!Z)return;Z.setText($),J.setFocus(Z),J.requestRender()}setBusy($,J){let Z=this.tui;if(!Z){this.loader=null;return}if($){let Y=J??"thinking\u2026";if(this.loader){this.loader.setMessage(Y);return}let X=new z1(Z,(U)=>x.accent(U),(U)=>W.dim(U),Y);X.onAbort=()=>{this.hooks?.onInterrupt()},this.loader=X;let G=this.editor,j=G?Z.children.indexOf(G):-1;Z.children.splice(j<0?Z.children.length:j,0,X),X.start(),Z.requestRender()}else{let Y=this.loader;if(!Y)return;this.loader=null,Y.stop();let X=Z.children.indexOf(Y);if(X>=0)Z.children.splice(X,1);Z.requestRender()}}setStatus($){let J=Y3($.yolo),Z=$.mode?`${$.mode} \xB7 `:"";this.statusText=W.dim(`${Z}${$.provider}/${$.model} \xB7 ${J} \xB7 turns ${$.turns} \xB7 tokens ${$.tokensIn}/${$.tokensOut}${$.todos?` \xB7 ${$.todos}`:""}`);let Y=this.tui;if(!Y||!this.statusLine)return;let X=new m0(this.statusText,1,0),G=Y.children.indexOf(this.statusLine);if(G>=0)Y.children.splice(G,1,X);else Y.children.push(X);this.statusLine=X,Y.requestRender()}}var h6=120,E$;var l6=T(()=>{B$();J3();x6();p6();q$();Z3();E$=class E$ extends h0{holding=!0;requestRender($=!1){if(!this.holding)super.requestRender($)}reveal(){this.holding=!1,this.start()}}});
|
|
58
|
+
export{F3 as s,a6 as t,I3 as u,t0 as v,W1 as w,N2 as x,x$ as y,Q3 as z,c6 as A,l6 as B};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{rn as I,tn as y}from"./main-nqveez48.js";var X=3,L="save skipped: memory at capacity or repeatedly failing",H=0;function i(){H=0}function k(){return H}function a(q){return{schema:{name:"memory_edit",description:`Edit long-term memory blocks. Ops: add(text) appends a line; replace(oldText,newText) requires oldText to match exactly once; remove(oldText) same. block: "memory" (session/task facts, cap ${q.cap("memory")} chars) or "user" (stable user preferences, cap ${q.cap("user")} chars). Failures count toward a per-turn budget of ${X}; after that saves are skipped until next turn.`,args:{type:"object",properties:{op:{type:"string",enum:["add","replace","remove"]},block:{type:"string",enum:["memory","user"]},text:{type:"string",description:"text to add (op=add)"},oldText:{type:"string",description:"exact text to replace/remove; must match exactly once"},newText:{type:"string",description:"replacement text (op=replace; empty removes)"}},required:["op","block"]}},kind:"memory",sequential:!0,async execute(Q,J){let Z=Q;if(H>=X)return{ok:!1,output:L};let $=Z.block==="user"?"user":Z.block==="memory"?"memory":void 0;if(!$)return j(`invalid block: ${String(Z.block)}`);let z;switch(Z.op){case"add":if(typeof Z.text!=="string"||Z.text.trim().length===0)return j("op=add requires non-empty text");z=q.add($,Z.text);break;case"replace":if(typeof Z.oldText!=="string"||Z.oldText.length===0)return j("op=replace requires oldText");if(typeof Z.newText!=="string")return j('op=replace requires newText (use "" to delete)');z=q.replace($,Z.oldText,Z.newText);break;case"remove":if(typeof Z.oldText!=="string"||Z.oldText.length===0)return j("op=remove requires oldText");z=q.remove($,Z.oldText);break;default:return j(`invalid op: ${String(Z.op)}`)}if(!z.ok)return j(z.reason??"edit failed",z.current,z.limit);return{ok:!0,output:`${Z.op} ok: ${$} block now ${z.current}/${z.limit} chars`,data:{block:$,chars:z.current,limit:z.limit}}}}}function j(q,Q,J){H++;let Z=Q!==void 0&&J!==void 0?` (current ${Q}/${J} chars)`:"";return{ok:!1,output:`memory_edit failed: ${q}${Z}; failures this turn: ${H}/${X}`}}y();import{closeSync as _,existsSync as E,openSync as f,readSync as m}from"fs";import{join as S}from"path";import{appendFileSync as R,existsSync as D,mkdirSync as U,readFileSync as O,renameSync as C,writeFileSync as w}from"fs";import{dirname as g}from"path";var A=".versions.jsonl",F=20;function P(q,Q){U(g(q),{recursive:!0});let J=`${q}.${process.pid}.tmp`;w(J,Q),C(J,q)}function h(q){let Q;try{Q=JSON.parse(q)}catch{return null}if(typeof Q!=="object"||Q===null||Array.isArray(Q))return null;let J=Q;if(typeof J.version!=="number"||typeof J.baseVersion!=="number"||typeof J.before!=="string"||typeof J.after!=="string"||typeof J.reason!=="string"||typeof J.timestamp!=="number")return null;let Z={version:J.version,baseVersion:J.baseVersion,before:J.before,after:J.after,reason:J.reason,timestamp:J.timestamp};if(typeof J.rollbackTo==="number")Z.rollbackTo=J.rollbackTo;return Z}class W{targetPath;ledgerPath;maxEdits;constructor(q,Q={}){this.targetPath=q;this.ledgerPath=Q.ledgerPath??q+A,this.maxEdits=Math.max(1,Q.maxEdits??F)}history(){if(!D(this.ledgerPath))return[];let q=new Map;for(let Q of O(this.ledgerPath,"utf8").split(`
|
|
3
|
+
`)){let J=Q.trim();if(!J)continue;let Z=h(J);if(Z)q.set(Z.version,Z)}return[...q.values()].sort((Q,J)=>Q.version-J.version)}version(){return this.history().at(-1)?.version??0}read(){return D(this.targetPath)?O(this.targetPath,"utf8"):""}range(){let q=this.history(),Q=q.at(-1);if(!Q)return null;let J=q.length-1;while(J>0&&q[J-1].version===q[J].baseVersion)J--;return{from:q[J].baseVersion,to:Q.version}}contentAt(q){let Q=this.history(),J=Q.find((Z)=>Z.version===q);if(J)return J.after;return Q.find((Z)=>Z.baseVersion===q)?.before}drifted(){let q=this.history().at(-1);return q!==void 0&&this.read()!==q.after}commit(q,Q,J,Z=Date.now()){let $=this.version();if(J!==$)return{ok:!1,code:"version-conflict",baseVersion:J,currentVersion:$,message:`baseVersion ${J} does not match current version ${$}; re-read and retry`};return{ok:!0,edit:this.write(q,Q,$,Z)}}rollback(q,Q,J=Date.now()){let Z=this.contentAt(q);if(Z===void 0){let z=this.range();return{ok:!1,code:"unknown-version",requested:q,available:z,message:z?`version ${q} is not restorable; available: ${z.from}..${z.to}`:`version ${q} is not restorable; no recorded edits`}}return{ok:!0,edit:this.write(Z,Q??`rollback to v${q}`,this.version(),J,q)}}write(q,Q,J,Z,$){let z={version:J+1,baseVersion:J,before:this.read(),after:q,reason:Q,timestamp:Z,...$!==void 0?{rollbackTo:$}:{}};U(g(this.ledgerPath),{recursive:!0});let K=JSON.stringify(z)+`
|
|
4
|
+
`;if(D(this.ledgerPath)){let G=O(this.ledgerPath);if(G.length>0&&G[G.length-1]!==10)K=`
|
|
5
|
+
`+K}R(this.ledgerPath,K,"utf8");let M=this.history();if(M.length>this.maxEdits){let G=M.slice(M.length-this.maxEdits);P(this.ledgerPath,G.map((v)=>JSON.stringify(v)).join(`
|
|
6
|
+
`)+`
|
|
7
|
+
`)}return P(this.targetPath,q),z}}var Y={memory:"MEMORY.md",user:"USER.md"},T={memory:2200,user:1375},N=65536,V="memory changed since it was read \u2014 re-read and retry",u=/(?:ignore previous|disregard above|system prompt)/i;function B(q){return q.split(`
|
|
8
|
+
`).map((Q)=>u.test(Q)?"[BLOCKED]":Q).join(`
|
|
9
|
+
`)}function x(q,Q){if(q.length<=Q)return q;let J=q.lastIndexOf(`
|
|
10
|
+
`,Q);if(J<Q/2)J=Q;return q.slice(0,J)}function p(q,Q){let J=f(q,"r");try{let Z=Buffer.alloc(Q+1),$=0;while($<Z.length){let z=m(J,Z,$,Z.length-$,$);if(z<=0)break;$+=z}return{text:Z.subarray(0,Math.min($,Q)).toString("utf8"),cut:$>Q}}finally{_(J)}}function d(q,Q){if(!Q)return 0;let J=0,Z=0;while((Z=q.indexOf(Q,Z))!==-1)J++,Z+=Q.length;return J}class s{caps;live={memory:"",user:""};frozen;ledgers;baseVersions;dirs;readCut={memory:!1,user:!1};withheld;onCommit;constructor(q,Q=T,J={}){this.caps=Q;this.dirs=typeof q==="string"?{memory:q,user:q}:{memory:q.memory,user:q.user},this.withheld=new Set(J.withhold??[]),this.onCommit=J.onCommit,this.live.memory=this.read("memory"),this.live.user=this.read("user"),this.frozen={memory:B(this.live.memory),user:B(this.live.user)},this.ledgers={memory:new W(this.file("memory")),user:new W(this.file("user"))},this.baseVersions={memory:this.ledgers.memory.version(),user:this.ledgers.user.version()}}read(q){let Q=this.file(q);if(!E(Q))return"";let J=p(Q,N);return this.readCut[q]=J.cut,J.text}file(q){return S(this.dirs[q],Y[q])}path(q){return this.file(q)}add(q,Q){let J=Q.trim();if(!J)return{ok:!1,reason:"empty text"};let Z=this.live[q]?this.live[q]+`
|
|
11
|
+
`+J:J;return this.commit(q,Z)}replace(q,Q,J){let Z=this.locate(q,Q);if(!Z.ok)return Z;let $=J.trim(),z=$?this.live[q].replace(Q,$):this.live[q].replace(Q,"");return this.commit(q,z.trim())}remove(q,Q){let J=this.locate(q,Q);if(!J.ok)return J;let Z=this.live[q].replace(Q,"").replace(/\n{3,}/g,`
|
|
12
|
+
|
|
13
|
+
`).trim();return this.commit(q,Z)}locate(q,Q){if(!Q)return{ok:!1,reason:"oldText required"};let J=d(this.live[q],Q);if(J===0)return{ok:!1,reason:"oldText not found"};if(J>1)return{ok:!1,reason:`oldText matches ${J} times; must match exactly once`};return{ok:!0}}capCheck(q,Q){let J=this.caps[q];if(this.withheld.has(q))return{ok:!1,reason:`${Y[q]} came with this repository and is not approved on this machine \u2014 it is not in the prompt and cannot be written to (${I})`,current:this.live[q].length,limit:J};if(this.readCut[q])return{ok:!1,reason:`${Y[q]} on disk is longer than the ${N}-byte read cap \u2014 trim it by hand before editing`,current:this.live[q].length,limit:J};if(Q.length<=J)return null;return{ok:!1,reason:`block would exceed cap (${Q.length} > ${J} chars)`,current:this.live[q].length,limit:J}}commit(q,Q){let J=this.capCheck(q,Q);if(J)return J;let Z=this.ledgers[q].commit(Q,"memory_edit",this.baseVersions[q]);if(!Z.ok)return this.live[q]=this.ledgers[q].read(),this.baseVersions[q]=Z.currentVersion,{ok:!1,reason:V,conflict:{baseVersion:Z.baseVersion,currentVersion:Z.currentVersion}};return this.baseVersions[q]=Z.edit.version,this.live[q]=Q,this.onCommit?.(q,this.file(q)),{ok:!0,current:Q.length,limit:this.caps[q]}}rollback(q,Q){let J=this.ledgers[q].contentAt(Q),Z=J!==void 0?this.capCheck(q,J):null;if(Z)return Z;let $=this.ledgers[q].rollback(Q,"memory_rollback");if(!$.ok)return{ok:!1,reason:$.message};return this.baseVersions[q]=$.edit.version,this.live[q]=this.ledgers[q].read(),this.onCommit?.(q,this.file(q)),{ok:!0,current:this.live[q].length,limit:this.caps[q]}}ledger(q){return this.ledgers[q]}promptView(q){let Q=this.frozen[q],J=this.caps[q];if(Q.length<=J&&!this.readCut[q])return Q;let Z=this.readCut[q]?`more than ${N} bytes`:`${this.live[q].length} chars`;return`${x(Q,J)}
|
|
14
|
+
[truncated: ${Y[q]} holds ${Z}; the first ${J} chars are shown \u2014 trim the file]`}renderForPrompt(){let q=[];if(this.frozen.memory&&!this.withheld.has("memory"))q.push(`# Memory
|
|
15
|
+
${this.promptView("memory")}`);if(this.frozen.user&&!this.withheld.has("user"))q.push(`# User
|
|
16
|
+
${this.promptView("user")}`);return q.join(`
|
|
17
|
+
|
|
18
|
+
`)}liveText(q){return this.live[q]}edited(q){return B(this.live[q])!==this.frozen[q]}cap(q){return this.caps[q]}overCap(q){if(this.live[q].length<=this.caps[q]&&!this.readCut[q])return null;return{chars:this.live[q].length,cap:this.caps[q],readCut:this.readCut[q]}}isWithheld(q){return this.withheld.has(q)}}
|
|
19
|
+
export{A as ye,Y as ze,T as Ae,x as Be,s as Ce,i as De,k as Ee,a as Fe};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Vi as T,Wi as y,aj as C}from"./main-xx2z3zh5.js";import{Mj as F,Nj as O,Wj as h}from"./main-ywbxshqc.js";import{$m as I,Um as D,_m as R}from"./main-2yeveeve.js";I();import{createInterface as _}from"readline";h();var A=[{key:"1",id:"anthropic",label:"anthropic \u2014 Claude models"},{key:"2",id:"openai",label:"openai"},{key:"3",id:"openrouter",label:"openrouter \u2014 many models behind one key"},{key:"4",id:"deepseek",label:"deepseek"},{key:"5",id:"groq",label:"groq"},{key:"6",id:"ollama",label:"ollama \u2014 local, no key needed",local:!0},{key:"7",id:"lmstudio",label:"lmstudio \u2014 local, no key needed",local:!0},{key:"8",label:"another OpenAI-compatible URL (a proxy, vLLM, \u2026)",url:"openai"},{key:"9",label:"another Anthropic-protocol URL",url:"anthropic"}],E='Done. Try: rovecode "explain this repo"';function K(G){return new Promise((q)=>{let J=_({input:process.stdin,output:process.stdout}),Y=!1;J.question(G,(H)=>{if(Y)return;Y=!0,J.close(),q(H.trim())}),J.once("close",()=>{if(!Y)Y=!0,q("")})})}async function v(G){let q=G.out??console.log,J=G.ask??K,Y=G.secret??((j)=>R(j)),H=G.save??D,W=G.registry,f=G.probe??((j,B)=>W.probe(j,B));if(!(G.tty??process.stdin.isTTY===!0))return q(O("cli")),q(" (rovecode setup needs a terminal \u2014 this stdin is a pipe)"),2;q("\u25C6 rovecode setup \u2014 let's connect a model. Two or three questions."),q("");for(let j of A)q(` ${j.key} ${j.label}`);q("");let Q;for(let j=0;j<3&&Q===void 0;j++){let B=(await J("Which one? [1-9, empty = cancel]: ")).trim();if(B.length===0)return q(`cancelled \u2014 nothing changed. ${F("rovecode setup")} whenever you like`),2;if(Q=A.find(($)=>$.key===B||$.id===B),Q===void 0)q(` "${B}" is not on the list \u2014 a number from 1 to 9, please.`)}if(Q===void 0)return 2;let z;if(Q.url!==void 0){if(z=(await J("Short name for it (letters, digits, - _ .): ")).trim().toLowerCase(),!T.test(z))return q(` "${z}" won't work as an id. ${F("rovecode setup, and pick a name like myproxy")}`),2;let j=(await J("Base URL (e.g. https://host/v1): ")).trim();if(!/^https?:\/\//.test(j))return q(` "${j}" is not an http(s) URL. ${F("rovecode setup")}`),2;let B=Q.url==="anthropic"?"anthropic":j.includes("anthropic.com")?y(j):"openai",$=(await J("Does it need an API key? [Y/n]: ")).trim().toLowerCase().startsWith("n"),V=W.add({id:z,baseUrl:j,protocol:B,...$?{noKey:!0}:{}},"user");if("error"in V)return q(` ${V.error}. ${F("rovecode setup")}`),2;q(`\u25C6 ${z} registered (${B} protocol, ${j}).`)}else{z=Q.id;let j=W.get(z);if(j===void 0)return q(` ${z} is missing from the built-in table \u2014 that is a bug. ${F("rovecode provider add "+z+" <baseUrl>")}`),2;if(Q.local===!0&&j.noKey!==!0){let B=W.add({id:z,baseUrl:j.baseUrl,protocol:j.protocol,noKey:!0,...j.defaultModel!==void 0?{defaultModel:j.defaultModel}:{}},"user");if("error"in B)return q(` ${B.error}. ${F("rovecode setup")}`),2;q(`\u25C6 ${z} marked as a local server (${j.baseUrl}, no key).`)}}let X=W.get(z),L=X.defaultModel,N=(await J(L!==void 0?`Model id [${L}]: `:"Model id (empty = choose later with rovecode model list): ")).trim(),Z=N.length>0?N:L,M=C(X);if(!M){let j=await Y(`${X.keyEnv} (hidden): `);if(j.trim().length===0)q(`\u25C6 no key stored \u2014 I can't call ${z} without one.`),q(` ${F(`rovecode auth set ${z}`)} (or set ${X.keyEnv} in your environment)`);else H(z,j.trim(),X.keyEnv),W.refresh(),M=!0,q(`\u25C6 key stored for ${z} (hidden; ~/.rovecode/credentials.json).`)}else q(`\u25C6 ${z} already has a key (${X.keySource==="stored"?"stored":`env ${X.keyEnv}`}).`);if(M&&Z!==void 0){q(`\u25C6 testing ${z}/${Z} \u2026`);let j=await f(z,Z);if(j.ok)q(` ${j.detail}`);else q(` that didn't work: ${j.detail}`),q(` ${F(`check the key and the URL, then rovecode provider test ${z} ${Z}`)}`)}if(Z!==void 0){let j=W.setDefault(`${z}/${Z}`,"user");if("error"in j)return q(` ${j.error}. ${F(`rovecode model use ${z}/<model>`)}`),2;q(`\u25C6 default \u2192 ${j.provider}/${j.model} (~/.rovecode/providers.json; running TUIs switch live).`)}else q(`\u25C6 ${z} is set up but has no model yet.`),q(` ${F(`rovecode model list ${z}, then rovecode model use ${z}/<model>`)}`);return q(""),q(E),q(" or open the cockpit: rovecode"),0}
|
|
3
|
+
export{A as Jc,E as Kc,K as Lc,v as Mc};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{he as X,je as E,me as U,oe as P,te as M}from"./main-gth53dnt.js";import{ue as V,xe as b}from"./main-2z3dek0b.js";M();b();E();var y=60000,D=600000,R="You will be notified in this conversation when it finishes \u2014 do NOT poll or sleep: "+"continue other non-overlapping work or end your turn. Use `task_status result` to wait for it when you need its output.",W="In a one-shot run (`rovecode run`) background tasks do not outlive the run: collect what you need with `task_status result` before ending your turn.",Q=(j)=>({ok:!1,output:`Error: ${j}`}),G=(j,B)=>Q(`${j} ${B} requires a string \`id\` (see \`task_status list\`)`);function x(j,B){let C=j.startedAt!==void 0?Math.max(0,Math.round(((j.finishedAt??B)-j.startedAt)/1000)):0,K=j.usage?`, tokens ${j.usage.input}in/${j.usage.output}out`:"";return`task ${j.id} (${j.label}) ${j.status} \u2014 agent ${j.agent}, ${j.isolated?"isolated, ":""}${C}s${K}`}function S(j,B){let C=x(j,B);if(j.status==="done"){let K=j.patchLines!==void 0?`
|
|
3
|
+
[isolated: ${j.patchLines===0?"no file changes":`patch of ${j.patchLines} lines merged back`}]`:"",Y=j.kind==="external"?`
|
|
4
|
+
[external ${j.agent} lane \u2014 permissions: ${j.permissions??"(unknown)"}${j.laneExit!==void 0?`; exit ${j.laneExit}`:""}${j.laneModel?`; model ${j.laneModel}`:""}]`:"";return{ok:!0,output:`${C}${Y}${K}
|
|
5
|
+
${j.summary??"(no output)"}`,data:j}}if(j.status==="failed")return{ok:!1,output:`${C}
|
|
6
|
+
${j.error??"unknown error"}`,data:j};if(j.status==="cancelled")return{ok:!1,output:C,data:j};return{ok:!0,output:`${C}. ${R}`,data:j}}function g(j){if(j===void 0||j===null)return y;let B=typeof j==="number"?j:typeof j==="string"&&j.trim()!==""?Number(j):NaN;if(!Number.isFinite(B))return{error:`task_status result: \`timeout_ms\` must be a number of milliseconds (got ${JSON.stringify(j)??String(j)})`};return Math.min(D,Math.max(0,Math.floor(B)))}function h(j,B={}){let C=B.defaultAgent??"main",K=(B.agents??[]).filter((q)=>q.name!==C),Y=(q)=>q.length>120?q.slice(0,119)+"\u2026":q,H=K.length>0?`Custom agent definitions (.rovecode/agents/<name>.md \u2014 own system prompt, model, mode and tool allow-list): ${K.map((q)=>`${q.name} \u2014 ${Y(q.description)}`).join("; ")}. `:"";return{schema:{name:"task",description:"Run subagents as background tasks. `start` launches a child agent session on `goal` and returns at once with a task id; the child works while you continue, and a note lands in this conversation when it finishes (do not poll). Read its state or output with the `task_status` tool (status/result/list "+"\u2014 never prompts); `cancel` aborts a task. Children see only `goal` (write it self-contained). "+`At most ${j.maxConcurrent} run concurrently; extra starts queue FIFO \u2014 so for independent parts of a `+"wider request, issue their starts together in one turn and they run side by side while you keep the dependent steps. `isolated` runs the child in a git worktree copy and merges its file changes back as a patch on success. "+`\`agent\` may also name an EXTERNAL agentic-CLI lane \u2014 ${V.join(" | ")} \u2014 which runs \`goal\` in that CLI `+`instead of in one of our agents. A lane always works in its own worktree, its diff merges back like any isolated child, and it runs with the flags stated on the approval card. Lanes are OFF unless ${X} lists the id. Policy: under gated rules each \`start\` needs approval and the child runs read-only (prompt-gated actions are denied for children) unless allow rules cover them; under yolo it inherits allow-all. `+H+W,args:{type:"object",properties:{action:{type:"string",enum:["start","cancel"]},goal:{type:"string",description:"start: the child's task, self-contained (it has no access to this conversation)"},agent:{type:"string",description:`start: agent definition to run (default "${C}"${K.length>0?`; custom: ${K.map((q)=>q.name).join(", ")}`:""}), or an external CLI lane: ${V.join(" | ")} (needs ${X})`},isolated:{type:"boolean",description:"start: run in an isolated worktree copy; file changes merge back as a patch when the task finishes ok"},label:{type:"string",description:"start: short label (3-5 words) shown in task lists and completion notes"},id:{type:"string",description:"cancel: task id (e.g. t1)"}},required:["action"]}},kind:"spawn",sequential:!0,async execute(q){let z=q??{},J=typeof z.id==="string"?z.id.trim():"";switch(z.action){case"start":{if(typeof z.goal!=="string"||z.goal.trim()==="")return Q("task start requires a non-empty string `goal`");let F=typeof z.agent==="string"&&z.agent.trim()!==""?z.agent.trim():C,Z=j.start({agent:F,goal:z.goal,isolated:z.isolated===!0,background:!0},{label:typeof z.label==="string"?z.label:void 0,parentDepth:B.parentDepth??0,notify:B.notify,caller:B.caller,owner:B.owner,...B.parentTools?{parentTools:B.parentTools()}:{},...B.parentDir!==void 0?{parentDir:B.parentDir}:{}});if(!Z.ok)return Q(`task refused: ${Z.reason}`);let $=j.status(Z.id),f=$.status==="running"?"running":`queued (${j.counts().running} running, bound ${j.maxConcurrent})`,I=$.kind==="external"?`External ${$.agent} lane \u2014 permissions: ${$.permissions??"(unknown)"}; its worktree patch merges back when it finishes ok.`:Z.childPolicy==="gated"?"Policy: gated \u2014 the child runs read-only (prompt-gated actions are DENIED for children) unless allow rules cover them.":"Policy: the child inherits your allow rules.";return{ok:!0,output:`task ${$.id} (${$.label}) started: ${f}. ${I} ${R}`,data:$}}case"cancel":{if(J==="")return G("task","cancel");let F=j.status(J);if(!F)return Q(`unknown task '${J}'`);if(U(F.status))return{ok:!0,output:`task ${J} already ${F.status}`,data:F};let Z=j.cancel(J);return{ok:!0,output:`task ${Z.id} (${Z.label}) cancelled`,data:Z}}default:return Q(`task requires action start|cancel (got ${JSON.stringify(z.action??null)}); status|result|list live on task_status`)}}}}function L(j,B={}){return{schema:{name:"task_status",description:"Read background tasks started with `task` (never prompts, never mutates). `status` shows one task's state; `result` waits (bounded by `timeout_ms`, default 60s) for a task to finish and returns the "+"child's final output \u2014 call it when you need the output, otherwise wait for the completion note; "+"`list` shows every task. "+W,args:{type:"object",properties:{action:{type:"string",enum:["status","result","list"]},id:{type:"string",description:"status/result: task id (e.g. t1)"},timeout_ms:{type:"integer",description:`result: max wait in ms (default ${y}, max ${D}); 0 = report the current state at once`}},required:["action"]}},kind:"read",sequential:!0,async execute(C,K){let Y=C??{},H=Date.now(),q=typeof Y.id==="string"?Y.id.trim():"";switch(Y.action){case"status":{if(q==="")return G("task_status","status");let z=j.status(q);return z?{ok:!0,output:x(z,H),data:z}:Q(`unknown task '${q}'`)}case"result":{if(q==="")return G("task_status","result");if(!j.status(q))return Q(`unknown task '${q}'`);let z=g(Y.timeout_ms);if(typeof z!=="number")return Q(z.error);let J=await j.result(q,{timeoutMs:z,signal:K.signal,caller:B.caller});if(!J)return Q(`unknown task '${q}'`);if(!U(J.status)&&K.signal.aborted)return Q(`wait for task ${q} aborted`);if(!U(J.status))return{ok:!0,output:`${x(J,Date.now())} \u2014 still running after ${Math.round(z/1000)}s. ${R}`,data:J};return S(J,Date.now())}case"list":return{ok:!0,output:P(j.list(),H),data:j.counts()};default:return Q(`task_status requires action status|result|list (got ${JSON.stringify(Y.action??null)}); start|cancel live on task`)}}}}
|
|
7
|
+
export{y as be,D as ce,h as de,L as ee};
|