@pugi/cli 0.1.0-beta.98 → 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +11 -191
- package/bin/pugi +8 -0
- package/package.json +15 -71
- package/postinstall.mjs +31 -0
- package/CHANGELOG.md +0 -132
- package/THIRD_PARTY_NOTICES.md +0 -40
- package/assets/pugi-mascot.ansi +0 -16
- package/assets/pugi-prozr2-mascot.ansi +0 -9
- package/bin/run.js +0 -34
- package/dist/commands/deploy.js +0 -439
- package/dist/commands/flatten.js +0 -191
- package/dist/commands/jobs-watch.js +0 -201
- package/dist/commands/jobs.js +0 -260
- package/dist/commands/retro.js +0 -210
- package/dist/commands/smoke.js +0 -133
- package/dist/core/agent-progress/cleanup.js +0 -134
- package/dist/core/agent-progress/schema.js +0 -144
- package/dist/core/agent-progress/writer.js +0 -101
- package/dist/core/agents/adaptive-router.js +0 -330
- package/dist/core/agents/loader.js +0 -104
- package/dist/core/agents/query-decomposer.js +0 -297
- package/dist/core/agents/registry.js +0 -69
- package/dist/core/approvals/shortcut-resolver.js +0 -98
- package/dist/core/artifact-chain/dispatcher.js +0 -148
- package/dist/core/artifact-chain/exporter.js +0 -164
- package/dist/core/artifact-chain/state.js +0 -243
- package/dist/core/artifact-chain/steps.js +0 -169
- package/dist/core/ask-user/question.js +0 -92
- package/dist/core/audit/audit-trail.js +0 -275
- package/dist/core/auth/ensure-authenticated.js +0 -129
- package/dist/core/auth/env-provider.js +0 -238
- package/dist/core/auto-open-browser.js +0 -128
- package/dist/core/auto-update/channels.js +0 -122
- package/dist/core/auto-update/checker.js +0 -241
- package/dist/core/auto-update/state.js +0 -235
- package/dist/core/bare-mode/index.js +0 -107
- package/dist/core/bash/redirect.js +0 -281
- package/dist/core/bash-classifier.js +0 -1397
- package/dist/core/checkpoint/resumer.js +0 -149
- package/dist/core/checkpoint/rewinder.js +0 -291
- package/dist/core/checkpoints/shadow-git.js +0 -670
- package/dist/core/citations/parser.js +0 -109
- package/dist/core/classifier/yolo-classifier.js +0 -88
- package/dist/core/clipboard.js +0 -70
- package/dist/core/codegraph/decision-store.js +0 -248
- package/dist/core/codegraph/detect-repo.js +0 -459
- package/dist/core/codegraph/install.js +0 -134
- package/dist/core/codegraph/offer-hook.js +0 -220
- package/dist/core/compact/auto-trigger.js +0 -96
- package/dist/core/compact/buffer-rewriter.js +0 -115
- package/dist/core/compact/summarizer.js +0 -208
- package/dist/core/compact/token-counter.js +0 -108
- package/dist/core/consensus/anvil-fanout.js +0 -276
- package/dist/core/consensus/diff-capture.js +0 -491
- package/dist/core/consensus/rubric.js +0 -233
- package/dist/core/context/builder.js +0 -114
- package/dist/core/context/compaction-events.js +0 -99
- package/dist/core/context/compaction.js +0 -602
- package/dist/core/context/index.js +0 -28
- package/dist/core/context/invariants.js +0 -250
- package/dist/core/context/markdown-loader.js +0 -288
- package/dist/core/context/markdown-traverse.js +0 -255
- package/dist/core/context/pugiignore.js +0 -316
- package/dist/core/context/repo-skeleton.js +0 -533
- package/dist/core/context/tool-eviction.js +0 -55
- package/dist/core/context/watcher.js +0 -342
- package/dist/core/context/working-set.js +0 -165
- package/dist/core/coordinator/agent-tools.js +0 -77
- package/dist/core/coordinator/agent-toolset.js +0 -65
- package/dist/core/coordinator/fsm.js +0 -73
- package/dist/core/coordinator/mode-fsm.js +0 -70
- package/dist/core/cost/rate-card.js +0 -129
- package/dist/core/cost/tracker.js +0 -221
- package/dist/core/credentials.js +0 -355
- package/dist/core/cron/scheduler.js +0 -138
- package/dist/core/denial-tracking/index.js +0 -8
- package/dist/core/denial-tracking/state.js +0 -264
- package/dist/core/diagnostics/probe-runner.js +0 -93
- package/dist/core/diagnostics/probes/api.js +0 -46
- package/dist/core/diagnostics/probes/auth.js +0 -93
- package/dist/core/diagnostics/probes/bare-mode.js +0 -42
- package/dist/core/diagnostics/probes/cli-version.js +0 -127
- package/dist/core/diagnostics/probes/config.js +0 -72
- package/dist/core/diagnostics/probes/denial-tracking.js +0 -57
- package/dist/core/diagnostics/probes/disk.js +0 -81
- package/dist/core/diagnostics/probes/engine-live.js +0 -46
- package/dist/core/diagnostics/probes/git.js +0 -65
- package/dist/core/diagnostics/probes/hooks.js +0 -118
- package/dist/core/diagnostics/probes/mcp.js +0 -75
- package/dist/core/diagnostics/probes/node.js +0 -59
- package/dist/core/diagnostics/probes/pnpm.js +0 -36
- package/dist/core/diagnostics/probes/pugi-md.js +0 -89
- package/dist/core/diagnostics/probes/sandbox.js +0 -72
- package/dist/core/diagnostics/probes/session.js +0 -74
- package/dist/core/diagnostics/probes/status-snapshot.js +0 -488
- package/dist/core/diagnostics/probes/workspace.js +0 -63
- package/dist/core/diagnostics/types.js +0 -70
- package/dist/core/dispatch/cache-cleanup.js +0 -197
- package/dist/core/dispatch/cache-handoff.js +0 -295
- package/dist/core/edits/apply-patch-layer-e.js +0 -189
- package/dist/core/edits/dispatch.js +0 -511
- package/dist/core/edits/format-detector.js +0 -260
- package/dist/core/edits/format-matrix.js +0 -26
- package/dist/core/edits/fuzzy-ladder.js +0 -650
- package/dist/core/edits/index.js +0 -19
- package/dist/core/edits/journal.js +0 -199
- package/dist/core/edits/layer-a-apply.js +0 -217
- package/dist/core/edits/layer-a-fuzzy-apply.js +0 -198
- package/dist/core/edits/layer-b-apply.js +0 -211
- package/dist/core/edits/layer-c-apply.js +0 -160
- package/dist/core/edits/layer-d-ast.js +0 -572
- package/dist/core/edits/marker-parser.js +0 -401
- package/dist/core/edits/security-gate.js +0 -223
- package/dist/core/edits/verify-hook.js +0 -273
- package/dist/core/edits/worktree.js +0 -322
- package/dist/core/engine/adapter-runner.js +0 -8
- package/dist/core/engine/anvil-client.js +0 -344
- package/dist/core/engine/auto-compact.js +0 -179
- package/dist/core/engine/budgets.js +0 -192
- package/dist/core/engine/context-prefix.js +0 -155
- package/dist/core/engine/index.js +0 -12
- package/dist/core/engine/intensity.js +0 -163
- package/dist/core/engine/intent.js +0 -260
- package/dist/core/engine/native-pugi.js +0 -1616
- package/dist/core/engine/noop.js +0 -27
- package/dist/core/engine/prompts.js +0 -236
- package/dist/core/engine/strip-internal-fields.js +0 -124
- package/dist/core/engine/tool-bridge.js +0 -2173
- package/dist/core/engine/verification-patterns.js +0 -195
- package/dist/core/evaluation/golden-dataset.js +0 -293
- package/dist/core/feedback/queue.js +0 -177
- package/dist/core/feedback/submitter.js +0 -145
- package/dist/core/file-cache.js +0 -141
- package/dist/core/flatten/flatten-repo.js +0 -439
- package/dist/core/format/osc8-link.js +0 -28
- package/dist/core/hook-chains.js +0 -392
- package/dist/core/hooks/citation-verify-hook.js +0 -138
- package/dist/core/hooks/citation-verify.js +0 -112
- package/dist/core/hooks/events.js +0 -46
- package/dist/core/hooks/index.js +0 -15
- package/dist/core/hooks/registry.js +0 -216
- package/dist/core/hooks/runner.js +0 -236
- package/dist/core/hooks/v2/event-emitter.js +0 -115
- package/dist/core/hooks/v2/executor.js +0 -282
- package/dist/core/hooks/v2/index.js +0 -25
- package/dist/core/hooks/v2/lifecycle.js +0 -104
- package/dist/core/hooks/v2/loader.js +0 -216
- package/dist/core/hooks/v2/matcher.js +0 -125
- package/dist/core/hooks/v2/trust.js +0 -143
- package/dist/core/hooks/v2/types.js +0 -86
- package/dist/core/hooks/worktree-events.js +0 -158
- package/dist/core/hooks.js +0 -415
- package/dist/core/image/renderer.js +0 -71
- package/dist/core/index-store.js +0 -260
- package/dist/core/init/detector.js +0 -582
- package/dist/core/init/template-renderer.js +0 -242
- package/dist/core/jobs/registry.js +0 -462
- package/dist/core/ledger/results-tsv.js +0 -142
- package/dist/core/log-discipline/stdout-redirect.js +0 -51
- package/dist/core/lsp/cache.js +0 -105
- package/dist/core/lsp/client.js +0 -1229
- package/dist/core/lsp/language-detect.js +0 -66
- package/dist/core/lsp/post-edit-diagnostics.js +0 -171
- package/dist/core/lsp/server-detect.js +0 -173
- package/dist/core/lsp/symbol-cache.js +0 -162
- package/dist/core/lsp/symbol-tools.js +0 -664
- package/dist/core/mcp/client.js +0 -385
- package/dist/core/mcp/http-server.js +0 -553
- package/dist/core/mcp/orchestrator-config.js +0 -192
- package/dist/core/mcp/orchestrator-tools.js +0 -806
- package/dist/core/mcp/permission.js +0 -190
- package/dist/core/mcp/registry.js +0 -193
- package/dist/core/mcp/server-tools.js +0 -219
- package/dist/core/mcp/server.js +0 -397
- package/dist/core/mcp/trust.js +0 -91
- package/dist/core/memory/dual-write.js +0 -416
- package/dist/core/memory/passive-extract.js +0 -130
- package/dist/core/memory/phase1-kinds.js +0 -20
- package/dist/core/memory/secret-scanner.js +0 -304
- package/dist/core/memory-sync/queue.js +0 -170
- package/dist/core/metrics/extract.js +0 -113
- package/dist/core/modes/roo-modes.js +0 -68
- package/dist/core/onboarding/ensure-initialized.js +0 -133
- package/dist/core/onboarding/marker.js +0 -111
- package/dist/core/onboarding/telemetry-state.js +0 -108
- package/dist/core/output-style/presets.js +0 -176
- package/dist/core/output-style/state.js +0 -185
- package/dist/core/path-security.js +0 -345
- package/dist/core/permission.js +0 -369
- package/dist/core/permissions/auto-classifier.js +0 -124
- package/dist/core/permissions/bash-parser.js +0 -371
- package/dist/core/permissions/circuit-breaker.js +0 -83
- package/dist/core/permissions/constrained-edit.js +0 -91
- package/dist/core/permissions/gate.js +0 -278
- package/dist/core/permissions/index.js +0 -20
- package/dist/core/permissions/mode.js +0 -174
- package/dist/core/permissions/network-egress.js +0 -137
- package/dist/core/permissions/state.js +0 -241
- package/dist/core/permissions/tool-class.js +0 -107
- package/dist/core/plan-mode/ui-state.js +0 -51
- package/dist/core/plans/plan-artifact.js +0 -721
- package/dist/core/policy-limits/etag-store.js +0 -122
- package/dist/core/prd-check/parser.js +0 -215
- package/dist/core/prd-check/reporter.js +0 -127
- package/dist/core/prd-check/session-review.js +0 -557
- package/dist/core/prd-check/verifiers.js +0 -223
- package/dist/core/prompt-cache/client-cache.js +0 -99
- package/dist/core/prompts/assembly.js +0 -29
- package/dist/core/prompts/registry.js +0 -364
- package/dist/core/pugi-gitignore.js +0 -52
- package/dist/core/pugi-md/cc-compat-rules.js +0 -735
- package/dist/core/pugi-md/context-injector.js +0 -76
- package/dist/core/pugi-md/walk-up.js +0 -207
- package/dist/core/python/uv-installer.js +0 -270
- package/dist/core/python/uv-resolver.js +0 -83
- package/dist/core/rate-limit/narrator.js +0 -146
- package/dist/core/recipes/cli-types.js +0 -20
- package/dist/core/recipes/loader.js +0 -103
- package/dist/core/recipes/runner.js +0 -345
- package/dist/core/recipes/schema.js +0 -587
- package/dist/core/release-notes/parser.js +0 -241
- package/dist/core/release-notes/state.js +0 -116
- package/dist/core/repl/ask.js +0 -512
- package/dist/core/repl/cancellation.js +0 -98
- package/dist/core/repl/cap-warning.js +0 -91
- package/dist/core/repl/clipboard-read.js +0 -174
- package/dist/core/repl/dispatch-fsm.js +0 -220
- package/dist/core/repl/engine-bridge.js +0 -303
- package/dist/core/repl/history-search.js +0 -175
- package/dist/core/repl/history.js +0 -182
- package/dist/core/repl/kill-ring.js +0 -138
- package/dist/core/repl/model-pricing.js +0 -135
- package/dist/core/repl/privacy-banner.js +0 -71
- package/dist/core/repl/session.js +0 -4962
- package/dist/core/repl/slash-commands.js +0 -747
- package/dist/core/repl/store/index.js +0 -12
- package/dist/core/repl/store/jsonl-log.js +0 -321
- package/dist/core/repl/store/lockfile.js +0 -155
- package/dist/core/repl/store/session-store.js +0 -821
- package/dist/core/repl/store/types.js +0 -44
- package/dist/core/repl/store/uuid-v7.js +0 -68
- package/dist/core/repl/tool-route.js +0 -382
- package/dist/core/repl/workspace-context.js +0 -206
- package/dist/core/repo-map/build.js +0 -125
- package/dist/core/repo-map/cache.js +0 -185
- package/dist/core/repo-map/extractor.js +0 -254
- package/dist/core/repo-map/formatter.js +0 -145
- package/dist/core/repo-map/page-rank.js +0 -105
- package/dist/core/repo-map/scanner.js +0 -211
- package/dist/core/retro/git-collector.js +0 -251
- package/dist/core/retro/health-card.js +0 -25
- package/dist/core/retro/metrics.js +0 -342
- package/dist/core/retro/narrative.js +0 -249
- package/dist/core/retro/plane-collector.js +0 -274
- package/dist/core/retro/pr-issue-link.js +0 -65
- package/dist/core/retro/types.js +0 -16
- package/dist/core/retry-budget/budget.js +0 -284
- package/dist/core/retry-budget/index.js +0 -5
- package/dist/core/retry-budget/retry-cap.js +0 -74
- package/dist/core/routing/lead-worker.js +0 -43
- package/dist/core/routing/pre-flight-estimator.js +0 -108
- package/dist/core/runs/run-tree.js +0 -103
- package/dist/core/sandboxing/adapter.js +0 -29
- package/dist/core/sandboxing/index.js +0 -49
- package/dist/core/sandboxing/none.js +0 -19
- package/dist/core/sandboxing/seatbelt.js +0 -183
- package/dist/core/security/injection-scanner.js +0 -367
- package/dist/core/security/output-filter.js +0 -418
- package/dist/core/session/env-file.js +0 -105
- package/dist/core/session/section-budgets.js +0 -140
- package/dist/core/session.js +0 -377
- package/dist/core/settings.js +0 -400
- package/dist/core/share/formatter.js +0 -271
- package/dist/core/share/redactor.js +0 -221
- package/dist/core/share/uploader.js +0 -267
- package/dist/core/skills/defaults.js +0 -457
- package/dist/core/skills/loader.js +0 -454
- package/dist/core/skills/sources.js +0 -480
- package/dist/core/skills/trust.js +0 -172
- package/dist/core/smoke/headless-driver.js +0 -174
- package/dist/core/smoke/orchestrator.js +0 -194
- package/dist/core/smoke/runner.js +0 -238
- package/dist/core/smoke/scenario-parser.js +0 -316
- package/dist/core/statusline.js +0 -99
- package/dist/core/subagents/dispatcher-real.js +0 -600
- package/dist/core/subagents/dispatcher.js +0 -352
- package/dist/core/subagents/index.js +0 -39
- package/dist/core/subagents/isolation-matrix.js +0 -213
- package/dist/core/subagents/spawn.js +0 -101
- package/dist/core/telemetry/emitter.js +0 -229
- package/dist/core/telemetry/queue.js +0 -251
- package/dist/core/theme/context.js +0 -91
- package/dist/core/theme/presets.js +0 -228
- package/dist/core/theme/state.js +0 -181
- package/dist/core/todos/invariant.js +0 -10
- package/dist/core/todos/state.js +0 -177
- package/dist/core/tool-schema/compressor.js +0 -89
- package/dist/core/transport/version-interceptor.js +0 -166
- package/dist/core/trust.js +0 -109
- package/dist/core/tui/thinking-block.js +0 -64
- package/dist/core/vim/keymap.js +0 -288
- package/dist/core/vim/state.js +0 -92
- package/dist/core/watch-markers/marker-watcher.js +0 -133
- package/dist/core/worktree/include-parser.js +0 -249
- package/dist/core/worktree-manager/cleanup.js +0 -123
- package/dist/core/worktree-manager/manager.js +0 -303
- package/dist/index.js +0 -44
- package/dist/runtime/bootstrap.js +0 -190
- package/dist/runtime/cli.js +0 -8121
- package/dist/runtime/commands/agents.js +0 -385
- package/dist/runtime/commands/budget.js +0 -192
- package/dist/runtime/commands/cancel.js +0 -231
- package/dist/runtime/commands/chain.js +0 -489
- package/dist/runtime/commands/codegraph-status.js +0 -227
- package/dist/runtime/commands/compact.js +0 -297
- package/dist/runtime/commands/config.js +0 -595
- package/dist/runtime/commands/cost.js +0 -199
- package/dist/runtime/commands/delegate.js +0 -312
- package/dist/runtime/commands/dispatch.js +0 -126
- package/dist/runtime/commands/doctor.js +0 -579
- package/dist/runtime/commands/feedback.js +0 -184
- package/dist/runtime/commands/hooks.js +0 -187
- package/dist/runtime/commands/init.js +0 -254
- package/dist/runtime/commands/lsp.js +0 -368
- package/dist/runtime/commands/mcp.js +0 -935
- package/dist/runtime/commands/memory.js +0 -582
- package/dist/runtime/commands/model.js +0 -237
- package/dist/runtime/commands/onboarding.js +0 -275
- package/dist/runtime/commands/patch.js +0 -128
- package/dist/runtime/commands/permissions.js +0 -112
- package/dist/runtime/commands/plan.js +0 -143
- package/dist/runtime/commands/prd-check.js +0 -285
- package/dist/runtime/commands/privacy.js +0 -107
- package/dist/runtime/commands/recipe.js +0 -325
- package/dist/runtime/commands/redo-blob-store.js +0 -92
- package/dist/runtime/commands/redo.js +0 -361
- package/dist/runtime/commands/release-notes.js +0 -229
- package/dist/runtime/commands/repo-map.js +0 -95
- package/dist/runtime/commands/report.js +0 -299
- package/dist/runtime/commands/resume.js +0 -118
- package/dist/runtime/commands/review-consensus.js +0 -414
- package/dist/runtime/commands/rewind.js +0 -333
- package/dist/runtime/commands/roster.js +0 -117
- package/dist/runtime/commands/sessions.js +0 -163
- package/dist/runtime/commands/share.js +0 -316
- package/dist/runtime/commands/skills.js +0 -401
- package/dist/runtime/commands/status.js +0 -186
- package/dist/runtime/commands/stickers.js +0 -82
- package/dist/runtime/commands/style.js +0 -194
- package/dist/runtime/commands/theme.js +0 -196
- package/dist/runtime/commands/undo.js +0 -361
- package/dist/runtime/commands/update.js +0 -289
- package/dist/runtime/commands/vim.js +0 -140
- package/dist/runtime/commands/worktree.js +0 -177
- package/dist/runtime/commands/worktrees.js +0 -155
- package/dist/runtime/deprecation-warning.js +0 -69
- package/dist/runtime/engine-exit-code.js +0 -50
- package/dist/runtime/headless-repl.js +0 -195
- package/dist/runtime/headless.js +0 -548
- package/dist/runtime/load-hooks-or-exit.js +0 -71
- package/dist/runtime/plan-decompose.js +0 -531
- package/dist/runtime/sigint-guard.js +0 -272
- package/dist/runtime/stream-renderer.js +0 -195
- package/dist/runtime/update-check.js +0 -294
- package/dist/runtime/version.js +0 -65
- package/dist/runtime/worktree-bootstrap.js +0 -579
- package/dist/skills/bundled/batch.js +0 -617
- package/dist/skills/bundled/index.js +0 -45
- package/dist/skills/bundled/loop.js +0 -358
- package/dist/skills/bundled/remember.js +0 -383
- package/dist/skills/bundled/simplify.js +0 -289
- package/dist/skills/bundled/skillify.js +0 -373
- package/dist/skills/bundled/stuck.js +0 -558
- package/dist/skills/bundled/verify.js +0 -439
- package/dist/testing/vcr.js +0 -486
- package/dist/tools/agent-tool.js +0 -229
- package/dist/tools/apply-patch.js +0 -556
- package/dist/tools/ask-user-question.js +0 -337
- package/dist/tools/ask-user.js +0 -115
- package/dist/tools/bash.js +0 -1238
- package/dist/tools/brief.js +0 -224
- package/dist/tools/cron.js +0 -433
- package/dist/tools/enter-worktree.js +0 -250
- package/dist/tools/exit-worktree.js +0 -147
- package/dist/tools/file-tools.js +0 -553
- package/dist/tools/http-request.js +0 -336
- package/dist/tools/lsp-tools.js +0 -565
- package/dist/tools/mcp-tool.js +0 -260
- package/dist/tools/multi-edit.js +0 -361
- package/dist/tools/powershell.js +0 -268
- package/dist/tools/registry.js +0 -166
- package/dist/tools/server-tools.js +0 -892
- package/dist/tools/skill-tool.js +0 -96
- package/dist/tools/sleep.js +0 -99
- package/dist/tools/synthetic-output.js +0 -133
- package/dist/tools/tasks.js +0 -208
- package/dist/tools/todo-write.js +0 -184
- package/dist/tools/verify-plan-execution.js +0 -295
- package/dist/tools/web-fetch-injection-scanner.js +0 -207
- package/dist/tools/web-fetch.js +0 -720
- package/dist/tools/web-search.js +0 -458
- package/dist/tui/agent-progress-card.js +0 -111
- package/dist/tui/agent-tree-pane.js +0 -9
- package/dist/tui/agent-tree.js +0 -87
- package/dist/tui/ask-cli.js +0 -52
- package/dist/tui/ask-modal.js +0 -211
- package/dist/tui/ask-user-question-chips.js +0 -315
- package/dist/tui/ask-user-question-prompt.js +0 -203
- package/dist/tui/compact-banner.js +0 -81
- package/dist/tui/conversation-pane.js +0 -164
- package/dist/tui/cost-table.js +0 -111
- package/dist/tui/device-flow.js +0 -142
- package/dist/tui/doctor-table.js +0 -46
- package/dist/tui/feedback-prompt.js +0 -156
- package/dist/tui/input-box.js +0 -732
- package/dist/tui/login-picker.js +0 -69
- package/dist/tui/markdown-render.js +0 -266
- package/dist/tui/multi-file-diff-approval.js +0 -375
- package/dist/tui/onboarding-wizard.js +0 -240
- package/dist/tui/permissions-picker.js +0 -86
- package/dist/tui/render.js +0 -160
- package/dist/tui/repl-render.js +0 -770
- package/dist/tui/repl-splash-art.js +0 -64
- package/dist/tui/repl-splash-mascot.js +0 -154
- package/dist/tui/repl-splash.js +0 -117
- package/dist/tui/repl.js +0 -378
- package/dist/tui/slash-palette.js +0 -106
- package/dist/tui/splash-data.js +0 -61
- package/dist/tui/splash.js +0 -31
- package/dist/tui/status-bar.js +0 -209
- package/dist/tui/status-table.js +0 -7
- package/dist/tui/stickers-art.js +0 -136
- package/dist/tui/style-table.js +0 -28
- package/dist/tui/theme-table.js +0 -29
- package/dist/tui/thinking-spinner.js +0 -123
- package/dist/tui/tool-stream-pane.js +0 -140
- package/dist/tui/update-banner.js +0 -33
- package/dist/tui/vim-input.js +0 -267
- package/dist/tui/welcome-banner.js +0 -107
- package/dist/tui/welcome-data.js +0 -293
- package/dist/tui/workspace-context.js +0 -105
- package/docs/examples/codegraph.mcp.json +0 -10
- package/test/scenarios/codegen-create-file.scenario.txt +0 -13
- package/test/scenarios/compact-force.scenario.txt +0 -12
- package/test/scenarios/identity.scenario.txt +0 -11
- package/test/scenarios/persona-handoff.scenario.txt +0 -12
- package/test/scenarios/walkback.scenario.txt +0 -12
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState } from 'react';
|
|
3
|
-
import { Box, Text, useInput } from 'ink';
|
|
4
|
-
import { PERMISSION_MODES, PERMISSION_MODE_GLOSS, } from '../core/permissions/index.js';
|
|
5
|
-
/**
|
|
6
|
-
* Build the rendered rows from the canonical mode list. We map the
|
|
7
|
-
* 1-line gloss → row hint so `/permissions` and the picker stay in
|
|
8
|
-
* sync — a change to `PERMISSION_MODE_GLOSS` shows up here too.
|
|
9
|
-
*/
|
|
10
|
-
const ITEMS = PERMISSION_MODES.map((mode) => ({
|
|
11
|
-
mode,
|
|
12
|
-
title: titleCase(mode),
|
|
13
|
-
hint: PERMISSION_MODE_GLOSS[mode],
|
|
14
|
-
}));
|
|
15
|
-
function titleCase(mode) {
|
|
16
|
-
return mode.charAt(0).toUpperCase() + mode.slice(1);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Resolve the initial cursor — prefer the explicit `initialIndex`
|
|
20
|
-
* (spec / test) when provided, otherwise highlight the row matching
|
|
21
|
-
* the active mode so the operator opens the picker with their
|
|
22
|
-
* current selection focused.
|
|
23
|
-
*/
|
|
24
|
-
function resolveInitialIndex(currentMode, override) {
|
|
25
|
-
if (typeof override === 'number') {
|
|
26
|
-
return Math.min(Math.max(override, 0), ITEMS.length - 1);
|
|
27
|
-
}
|
|
28
|
-
const idx = ITEMS.findIndex((item) => item.mode === currentMode);
|
|
29
|
-
return idx >= 0 ? idx : 0;
|
|
30
|
-
}
|
|
31
|
-
export function PermissionsPicker(props) {
|
|
32
|
-
const [index, setIndex] = useState(resolveInitialIndex(props.currentMode, props.initialIndex));
|
|
33
|
-
useInput((input, key) => {
|
|
34
|
-
if (key.upArrow || input === 'k') {
|
|
35
|
-
setIndex((current) => (current === 0 ? ITEMS.length - 1 : current - 1));
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
if (key.downArrow || input === 'j') {
|
|
39
|
-
setIndex((current) => (current === ITEMS.length - 1 ? 0 : current + 1));
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
if (key.return) {
|
|
43
|
-
const selected = ITEMS[index];
|
|
44
|
-
if (selected)
|
|
45
|
-
props.onSelect(selected.mode);
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
if (key.escape || input === 'q') {
|
|
49
|
-
props.onCancel();
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
// : number shortcuts mirror the canonical 6-mode order.
|
|
53
|
-
// Operators coming from the upstream tool reach the same mode with the
|
|
54
|
-
// same digit (1=default, 2=acceptEdits, …, 6=bypassPermissions).
|
|
55
|
-
if (input === '1')
|
|
56
|
-
props.onSelect('default');
|
|
57
|
-
if (input === '2')
|
|
58
|
-
props.onSelect('acceptEdits');
|
|
59
|
-
if (input === '3')
|
|
60
|
-
props.onSelect('plan');
|
|
61
|
-
if (input === '4')
|
|
62
|
-
props.onSelect('auto');
|
|
63
|
-
if (input === '5')
|
|
64
|
-
props.onSelect('dontAsk');
|
|
65
|
-
if (input === '6')
|
|
66
|
-
props.onSelect('bypassPermissions');
|
|
67
|
-
});
|
|
68
|
-
return (_jsxs(Box, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [_jsxs(Box, { children: [_jsx(Text, { bold: true, children: "Permission mode" }), _jsx(Text, { dimColor: true, children: ` (current: ${props.currentMode} — ${props.sourceLabel})` })] }), props.firstRun ? (_jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: "First time? Mode = Ask \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E. Use /permissions \u043A change later." }) })) : null, _jsx(Box, { marginTop: 1, flexDirection: "column", children: ITEMS.map((item, itemIndex) => {
|
|
69
|
-
const isSelected = itemIndex === index;
|
|
70
|
-
const isCurrent = item.mode === props.currentMode;
|
|
71
|
-
return (_jsx(PickerRow, { isSelected: isSelected, isCurrent: isCurrent, title: item.title, hint: item.hint }, item.mode));
|
|
72
|
-
}) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { dimColor: true, children: '↑/↓ select Enter confirm Esc cancel' }) })] }));
|
|
73
|
-
}
|
|
74
|
-
function PickerRow({ isSelected, isCurrent, title, hint, }) {
|
|
75
|
-
// Arrow glyph + padded title so highlighted and dim rows share
|
|
76
|
-
// column alignment. A trailing ` ●` marks the currently-effective
|
|
77
|
-
// mode (separate from cursor focus) so an operator instantly sees
|
|
78
|
-
// which row is "what I have now" vs "what I'm hovering".
|
|
79
|
-
const indicator = isSelected ? '▸ ' : ' ';
|
|
80
|
-
// : longest title is `BypassPermissions` (17 chars). Bump the
|
|
81
|
-
// pad column так the gloss column stays aligned across all 6 rows.
|
|
82
|
-
const padded = title.padEnd(18, ' ');
|
|
83
|
-
const currentMarker = isCurrent ? ' ●' : ' ';
|
|
84
|
-
return (_jsxs(Text, { children: [_jsxs(Text, { color: isSelected ? 'cyan' : undefined, bold: isSelected, children: [indicator, padded] }), _jsx(Text, { color: isCurrent ? 'green' : undefined, children: currentMarker }), _jsx(Text, { dimColor: true, children: ` ${hint}` })] }));
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=permissions-picker.js.map
|
package/dist/tui/render.js
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { render } from 'ink';
|
|
3
|
-
import { DeviceFlow } from './device-flow.js';
|
|
4
|
-
import { LoginPicker } from './login-picker.js';
|
|
5
|
-
import { PermissionsPicker } from './permissions-picker.js';
|
|
6
|
-
import { Splash } from './splash.js';
|
|
7
|
-
import { collectSplashData } from './splash-data.js';
|
|
8
|
-
/**
|
|
9
|
-
* Mount `<Splash />` on a TTY, await unmount, return. The CLI
|
|
10
|
-
* dispatcher only reaches this entry point when `isInteractive()`
|
|
11
|
-
* already cleared.
|
|
12
|
-
*/
|
|
13
|
-
export async function renderSplash(cliVersion) {
|
|
14
|
-
const data = collectSplashData({ cliVersion });
|
|
15
|
-
const instance = render(React.createElement(Splash, { data }));
|
|
16
|
-
// The splash is static: nothing reads input, nothing animates. Defer
|
|
17
|
-
// the unmount one macrotask so Ink's log-update flush, Yoga layout
|
|
18
|
-
// settle, and the initial process.stdout.write all complete before
|
|
19
|
-
// we tear the runtime down. Without setImmediate, some terminals
|
|
20
|
-
// batch writes and lose the splash frame entirely on fast exit.
|
|
21
|
-
await new Promise((resolve) => setImmediate(resolve));
|
|
22
|
-
instance.unmount();
|
|
23
|
-
await instance.waitUntilExit();
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Sentinel thrown when the user dismisses the login picker via Esc
|
|
27
|
-
* or `q`. The CLI dispatcher catches it, prints a one-line abort
|
|
28
|
-
* message, and exits 130 (the standard exit code for SIGINT-style
|
|
29
|
-
* user cancellations — matches gh CLI and peer CLIs).
|
|
30
|
-
*/
|
|
31
|
-
export class LoginCancelledError extends Error {
|
|
32
|
-
constructor() {
|
|
33
|
-
super('Login cancelled');
|
|
34
|
-
this.name = 'LoginCancelledError';
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Mount `<LoginPicker />`, resolve to the chosen provider. Rejects
|
|
39
|
-
* with `LoginCancelledError` when the user cancels.
|
|
40
|
-
*
|
|
41
|
-
* After selection we call `unmount()` and resolve on the next
|
|
42
|
-
* macrotask. We deliberately do NOT chain `waitUntilExit()` — under
|
|
43
|
-
* some shimmed-stdin scenarios (CI test harnesses) Ink's
|
|
44
|
-
* `waitUntilExit` never settles because its raw-mode-release path
|
|
45
|
-
* waits on a stdin event that never fires. The next handler in the
|
|
46
|
-
* CLI dispatcher restores stdin state on its own (the device flow
|
|
47
|
-
* forks a browser, the token path attaches a fresh data listener).
|
|
48
|
-
*/
|
|
49
|
-
export function renderLoginPicker(apiUrl) {
|
|
50
|
-
return new Promise((resolveProvider, rejectProvider) => {
|
|
51
|
-
let settled = false;
|
|
52
|
-
const finish = (cb) => {
|
|
53
|
-
if (settled)
|
|
54
|
-
return;
|
|
55
|
-
settled = true;
|
|
56
|
-
instance.unmount();
|
|
57
|
-
setImmediate(cb);
|
|
58
|
-
};
|
|
59
|
-
const instance = render(React.createElement(LoginPicker, {
|
|
60
|
-
apiUrl,
|
|
61
|
-
onSelect: (provider) => {
|
|
62
|
-
finish(() => resolveProvider(provider));
|
|
63
|
-
},
|
|
64
|
-
onCancel: () => {
|
|
65
|
-
finish(() => rejectProvider(new LoginCancelledError()));
|
|
66
|
-
},
|
|
67
|
-
}));
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Sentinel thrown when the operator dismisses the permissions picker
|
|
72
|
-
* via Esc / q. Mirrors `LoginCancelledError` — the host catches and
|
|
73
|
-
* prints a one-line abort message; no mode flip lands.
|
|
74
|
-
*/
|
|
75
|
-
export class PermissionsPickerCancelledError extends Error {
|
|
76
|
-
constructor() {
|
|
77
|
-
super('Permissions picker cancelled');
|
|
78
|
-
this.name = 'PermissionsPickerCancelledError';
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
export function renderPermissionsPicker(options) {
|
|
82
|
-
return new Promise((resolveMode, rejectMode) => {
|
|
83
|
-
let settled = false;
|
|
84
|
-
const finish = (cb) => {
|
|
85
|
-
if (settled)
|
|
86
|
-
return;
|
|
87
|
-
settled = true;
|
|
88
|
-
instance.unmount();
|
|
89
|
-
setImmediate(cb);
|
|
90
|
-
};
|
|
91
|
-
const instance = render(React.createElement(PermissionsPicker, {
|
|
92
|
-
currentMode: options.currentMode,
|
|
93
|
-
sourceLabel: options.sourceLabel,
|
|
94
|
-
firstRun: options.firstRun ?? false,
|
|
95
|
-
onSelect: (mode) => {
|
|
96
|
-
finish(() => resolveMode(mode));
|
|
97
|
-
},
|
|
98
|
-
onCancel: () => {
|
|
99
|
-
finish(() => rejectMode(new PermissionsPickerCancelledError()));
|
|
100
|
-
},
|
|
101
|
-
}));
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Mount `<DeviceFlow />` on a TTY and return a handle the host uses to
|
|
106
|
-
* drive the frame. Mirrors `renderLoginPicker`'s lifecycle: we
|
|
107
|
-
* deliberately do NOT call `waitUntilExit()` after unmount (some
|
|
108
|
-
* shimmed-stdin test harnesses never settle that promise — the next
|
|
109
|
-
* code path in cli.ts restores stdin state on its own).
|
|
110
|
-
*/
|
|
111
|
-
export function renderDeviceFlow(options) {
|
|
112
|
-
let settled = false;
|
|
113
|
-
let resolveDone = () => undefined;
|
|
114
|
-
let rejectDone = () => undefined;
|
|
115
|
-
const donePromise = new Promise((resolveFn, rejectFn) => {
|
|
116
|
-
resolveDone = resolveFn;
|
|
117
|
-
rejectDone = rejectFn;
|
|
118
|
-
});
|
|
119
|
-
// Per the spec, the polling status drives the visible spinner; the
|
|
120
|
-
// host pushes status updates via `setStatus`. We use a tiny stateful
|
|
121
|
-
// wrapper component so React owns the re-render lifecycle (calling
|
|
122
|
-
// `instance.rerender` with a new element triggers a clean diff).
|
|
123
|
-
let currentStatus = { kind: 'polling' };
|
|
124
|
-
const finish = (cb) => {
|
|
125
|
-
if (settled)
|
|
126
|
-
return;
|
|
127
|
-
settled = true;
|
|
128
|
-
instance.unmount();
|
|
129
|
-
setImmediate(cb);
|
|
130
|
-
};
|
|
131
|
-
const renderElement = () => React.createElement(DeviceFlow, {
|
|
132
|
-
verificationUrl: options.verificationUrl,
|
|
133
|
-
userCode: options.userCode,
|
|
134
|
-
browserOpened: options.browserOpened,
|
|
135
|
-
status: currentStatus,
|
|
136
|
-
onCopy: options.onCopy,
|
|
137
|
-
onCancel: () => {
|
|
138
|
-
finish(() => rejectDone(new LoginCancelledError()));
|
|
139
|
-
},
|
|
140
|
-
onContinue: () => {
|
|
141
|
-
finish(() => resolveDone());
|
|
142
|
-
},
|
|
143
|
-
});
|
|
144
|
-
const instance = render(renderElement());
|
|
145
|
-
return {
|
|
146
|
-
setStatus(next) {
|
|
147
|
-
if (settled)
|
|
148
|
-
return;
|
|
149
|
-
currentStatus = next;
|
|
150
|
-
instance.rerender(renderElement());
|
|
151
|
-
},
|
|
152
|
-
unmount() {
|
|
153
|
-
finish(() => resolveDone());
|
|
154
|
-
},
|
|
155
|
-
done() {
|
|
156
|
-
return donePromise;
|
|
157
|
-
},
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=render.js.map
|