@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,89 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PUGI.md hierarchy probe — .
|
|
3
|
-
*
|
|
4
|
-
* Surfaces how many ambient `PUGI.md` / `CLAUDE.md` files were
|
|
5
|
-
* discovered by the cwd → homedir walk-up. Operators triaging "why
|
|
6
|
-
* is the model not following my project conventions" can run
|
|
7
|
-
* `pugi doctor` and immediately see whether the hierarchy walk
|
|
8
|
-
* loaded the file they expected.
|
|
9
|
-
*
|
|
10
|
-
* Status semantics:
|
|
11
|
-
* - `skipped` when bare mode is active (the walk is deliberately
|
|
12
|
-
* disabled). The row still renders so the JSON schema stays
|
|
13
|
-
* stable for downstream consumers.
|
|
14
|
-
* - `skipped` when zero files were found. This is the default
|
|
15
|
-
* state on a clean machine and is NOT an error — most operators
|
|
16
|
-
* do not maintain a `~/PUGI.md`.
|
|
17
|
-
* - `ok` when one or more files were discovered. The detail names
|
|
18
|
-
* the closest file and the total count.
|
|
19
|
-
*
|
|
20
|
-
* Side effects:
|
|
21
|
-
* - One filesystem walk from cwd to homedir (bounded by the walker's
|
|
22
|
-
* depth cap). Each level performs at most 2 `existsSync` calls.
|
|
23
|
-
* Cost is single-digit ms even on cold cache; well inside the
|
|
24
|
-
* doctor probe wall-clock budget.
|
|
25
|
-
*
|
|
26
|
-
* Wired into `buildDefaultProbes` in `runtime/commands/doctor.ts`.
|
|
27
|
-
*/
|
|
28
|
-
import { isBareMode } from '../../bare-mode/index.js';
|
|
29
|
-
import { walkUpPugiMd } from '../../pugi-md/walk-up.js';
|
|
30
|
-
export const PUGI_MD_DOCTOR_LABEL = 'PUGI.md HIERARCHY';
|
|
31
|
-
/** Detail string emitted when bare mode disables the walk. */
|
|
32
|
-
export const PUGI_MD_BARE_SKIP_DETAIL = 'skipped (--bare)';
|
|
33
|
-
/** Detail string emitted when the walk ran but found nothing. */
|
|
34
|
-
export const PUGI_MD_EMPTY_DETAIL = 'no PUGI.md / CLAUDE.md found in cwd → homedir';
|
|
35
|
-
export function probePugiMdHierarchy(input = {}) {
|
|
36
|
-
const env = input.env ?? process.env;
|
|
37
|
-
if (isBareMode(env)) {
|
|
38
|
-
return {
|
|
39
|
-
name: PUGI_MD_DOCTOR_LABEL,
|
|
40
|
-
status: 'skipped',
|
|
41
|
-
detail: PUGI_MD_BARE_SKIP_DETAIL,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
const cwd = input.cwd ?? process.cwd();
|
|
45
|
-
const walk = input.walkImpl ?? ((c, o) => walkUpPugiMd(c, o));
|
|
46
|
-
let files;
|
|
47
|
-
try {
|
|
48
|
-
files = walk(cwd, input.homedir !== undefined ? { homedir: input.homedir } : {});
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
// Defensive: walker is wrapped in per-file try/catch already, so
|
|
52
|
-
// a throw here means a programmer error (bad input). Degrade to
|
|
53
|
-
// a `warn` row rather than crashing the doctor sweep.
|
|
54
|
-
return {
|
|
55
|
-
name: PUGI_MD_DOCTOR_LABEL,
|
|
56
|
-
status: 'warn',
|
|
57
|
-
detail: 'walk-up failed (see logs)',
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
if (files.length === 0) {
|
|
61
|
-
return {
|
|
62
|
-
name: PUGI_MD_DOCTOR_LABEL,
|
|
63
|
-
status: 'skipped',
|
|
64
|
-
detail: PUGI_MD_EMPTY_DETAIL,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
// `files` is shallow-to-deep; the first entry is the closest to cwd.
|
|
68
|
-
// Operators reading the table care most about that one — it is the
|
|
69
|
-
// file that will most directly influence model behaviour. The
|
|
70
|
-
// additional count gives a quick "is the homedir / parent picked up
|
|
71
|
-
// too?" signal without listing every path.
|
|
72
|
-
const closest = files[0];
|
|
73
|
-
// closest is guaranteed non-undefined: files.length > 0 enforced
|
|
74
|
-
// by the early return above.
|
|
75
|
-
if (!closest) {
|
|
76
|
-
return {
|
|
77
|
-
name: PUGI_MD_DOCTOR_LABEL,
|
|
78
|
-
status: 'skipped',
|
|
79
|
-
detail: PUGI_MD_EMPTY_DETAIL,
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
const suffix = files.length === 1 ? '' : ` (+${files.length - 1} more)`;
|
|
83
|
-
return {
|
|
84
|
-
name: PUGI_MD_DOCTOR_LABEL,
|
|
85
|
-
status: 'ok',
|
|
86
|
-
detail: `${files.length} file${files.length === 1 ? '' : 's'}: ${closest.path}${suffix}`,
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=pugi-md.js.map
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SANDBOX probe — surfaces the current OS-level sandbox posture (
|
|
3
|
-
* Trust Sprint item 6: macOS Seatbelt adapter wired; Linux Landlock
|
|
4
|
-
* and Docker variants still backlog).
|
|
5
|
-
*
|
|
6
|
-
* Sources `bash.sandbox` from `.pugi/settings.json`, defaults to
|
|
7
|
-
* `none`. When set to `macOS-seatbelt` the probe verifies the OS
|
|
8
|
-
* primitive is callable and reports `ok` (armed) or `error`
|
|
9
|
-
* (configured-but-unavailable). When set to `none` the probe reports
|
|
10
|
-
* `warn` with the operator-readable reason "policy 'none' selected".
|
|
11
|
-
*/
|
|
12
|
-
import { homedir } from 'node:os';
|
|
13
|
-
import { loadSettings } from '../../settings.js';
|
|
14
|
-
import { probeSandbox as probeSandboxAdapter } from '../../sandboxing/index.js';
|
|
15
|
-
export function probeSandbox(ctx) {
|
|
16
|
-
const settings = loadSettings(ctx.cwd);
|
|
17
|
-
const configured = (settings.bash?.sandbox ?? 'none');
|
|
18
|
-
const home = ctx.home || homedir();
|
|
19
|
-
const extraWritePaths = [`${home}/.pugi`];
|
|
20
|
-
try {
|
|
21
|
-
const state = probeSandboxAdapter({
|
|
22
|
-
mode: configured,
|
|
23
|
-
workspaceRoot: ctx.cwd,
|
|
24
|
-
extraWritePaths,
|
|
25
|
-
});
|
|
26
|
-
if (state.armed) {
|
|
27
|
-
// Discipline-gap honesty (Trust Sprint thesis): the adapter
|
|
28
|
-
// probes ok, but spawn-wrap is NOT yet wired into the bash
|
|
29
|
-
// runner (that file is owned by another agent on PUGI-VERIFY-
|
|
30
|
-
// GATE). Reporting status=ok would overstate the posture — an
|
|
31
|
-
// operator reading 'armed' would assume their bash calls were
|
|
32
|
-
// jailed when they still run with full process privileges. We
|
|
33
|
-
// surface 'warn' with a precise reason instead and flip к 'ok'
|
|
34
|
-
// when the runner indirection lands.
|
|
35
|
-
return {
|
|
36
|
-
name: 'SANDBOX',
|
|
37
|
-
status: 'warn',
|
|
38
|
-
detail: `configured (mode=${state.mode}) but spawn-wrap not yet wired — bash dispatches still run with full process privileges. ` +
|
|
39
|
-
`Adapter posture: ${state.details.join('; ')}`,
|
|
40
|
-
remediation: 'The seatbelt adapter is in-tree and exercised by tests; the bash runner indirection that consumes it lands in a follow-up. ' +
|
|
41
|
-
'Bash classifier denylist + permission FSM remain in force in the meantime.',
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
// Not armed — distinguish "operator chose none" from "configured
|
|
45
|
-
// mode failed". The latter is an error; the former is a documented
|
|
46
|
-
// posture and stays a warning.
|
|
47
|
-
if (state.mode === 'none') {
|
|
48
|
-
return {
|
|
49
|
-
name: 'SANDBOX',
|
|
50
|
-
status: 'warn',
|
|
51
|
-
detail: `not armed: ${state.reason ?? 'mode none'}`,
|
|
52
|
-
remediation: 'Set `bash.sandbox = "macOS-seatbelt"` in .pugi/settings.json on macOS to enable workspace-scoped write isolation. ' +
|
|
53
|
-
'Bash classifier denylist + permission FSM still apply.',
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
name: 'SANDBOX',
|
|
58
|
-
status: 'error',
|
|
59
|
-
detail: `configured mode "${state.mode}" failed to arm: ${state.reason ?? 'unknown'}`,
|
|
60
|
-
remediation: 'Set `bash.sandbox` to a supported mode for this platform or remove the key to fall back to "none".',
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
catch (err) {
|
|
64
|
-
return {
|
|
65
|
-
name: 'SANDBOX',
|
|
66
|
-
status: 'error',
|
|
67
|
-
detail: `sandbox probe threw: ${err.message}`,
|
|
68
|
-
remediation: 'Remove the bash.sandbox key from .pugi/settings.json or set it to "none".',
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=sandbox.js.map
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* SESSION probe — reports the active session id + age when the doctor
|
|
3
|
-
* runs from inside the REPL OR finds a recent NDJSON session log in
|
|
4
|
-
* the workspace.
|
|
5
|
-
*
|
|
6
|
-
* The CLI command path has no live session context (each `pugi <cmd>`
|
|
7
|
-
* invocation is a fresh process), so we read `.pugi/events.jsonl` if
|
|
8
|
-
* present and report the most-recent event's age + total line count.
|
|
9
|
-
* Inside the REPL we pass an explicit `sessionId` so the probe
|
|
10
|
-
* surfaces the live state without re-reading disk.
|
|
11
|
-
*
|
|
12
|
-
* Absence of `.pugi/events.jsonl` is `skipped`, not an error — the
|
|
13
|
-
* operator may simply be running `pugi doctor` in a workspace that
|
|
14
|
-
* has not yet seen a dispatch.
|
|
15
|
-
*/
|
|
16
|
-
export function probeSession(ctx, fs, deps) {
|
|
17
|
-
if (deps.liveSessionId) {
|
|
18
|
-
return {
|
|
19
|
-
name: 'SESSION',
|
|
20
|
-
status: 'ok',
|
|
21
|
-
detail: `session=${deps.liveSessionId} (live, REPL active)`,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
const eventsPath = `${ctx.cwd}/.pugi/events.jsonl`;
|
|
25
|
-
if (!fs.existsSync(eventsPath)) {
|
|
26
|
-
return {
|
|
27
|
-
name: 'SESSION',
|
|
28
|
-
status: 'skipped',
|
|
29
|
-
detail: 'No prior dispatch logged in this workspace',
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
let stats;
|
|
33
|
-
try {
|
|
34
|
-
stats = fs.statSync(eventsPath);
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
38
|
-
return {
|
|
39
|
-
name: 'SESSION',
|
|
40
|
-
status: 'warn',
|
|
41
|
-
detail: `.pugi/events.jsonl present but unreadable`,
|
|
42
|
-
remediation: `Inspect: ${message}`,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
const ageMs = Math.max(0, deps.now() - stats.mtimeMs);
|
|
46
|
-
const ageLabel = formatAge(ageMs);
|
|
47
|
-
// Counting lines is cheap on a small NDJSON file; a "huge" Pugi
|
|
48
|
-
// session is single-digit MB. We avoid loading binary blobs by
|
|
49
|
-
// simply walking the buffer count.
|
|
50
|
-
let lineCount = 0;
|
|
51
|
-
try {
|
|
52
|
-
const raw = fs.readFileSync(eventsPath, 'utf8');
|
|
53
|
-
lineCount = raw.split('\n').filter((line) => line.trim().length > 0).length;
|
|
54
|
-
}
|
|
55
|
-
catch {
|
|
56
|
-
lineCount = -1;
|
|
57
|
-
}
|
|
58
|
-
const linePart = lineCount >= 0 ? `, ${lineCount} event(s)` : '';
|
|
59
|
-
return {
|
|
60
|
-
name: 'SESSION',
|
|
61
|
-
status: 'ok',
|
|
62
|
-
detail: `last event ${ageLabel} ago${linePart}`,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
export function formatAge(ms) {
|
|
66
|
-
if (ms < 60_000)
|
|
67
|
-
return `${Math.round(ms / 1000)}s`;
|
|
68
|
-
if (ms < 3_600_000)
|
|
69
|
-
return `${Math.round(ms / 60_000)}m`;
|
|
70
|
-
if (ms < 86_400_000)
|
|
71
|
-
return `${Math.round(ms / 3_600_000)}h`;
|
|
72
|
-
return `${Math.round(ms / 86_400_000)}d`;
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=session.js.map
|