@pugi/cli 0.1.0-beta.1 → 0.1.0-beta.100
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 +132 -0
- package/LICENSE +1 -1
- package/README.md +53 -11
- package/THIRD_PARTY_NOTICES.md +40 -0
- package/assets/pugi-mascot.ansi +15 -40
- package/assets/pugi-prozr2-mascot.ansi +9 -0
- package/bin/run.js +33 -1
- package/dist/commands/deploy.js +40 -40
- package/dist/commands/flatten.js +191 -0
- package/dist/commands/jobs-watch.js +201 -0
- package/dist/commands/jobs.js +42 -27
- package/dist/commands/retro.js +210 -0
- package/dist/commands/smoke.js +133 -0
- package/dist/core/agent-progress/cleanup.js +134 -0
- package/dist/core/agent-progress/schema.js +144 -0
- package/dist/core/agent-progress/writer.js +101 -0
- package/dist/core/agents/adaptive-router.js +330 -0
- package/dist/core/agents/query-decomposer.js +297 -0
- package/dist/core/agents/registry.js +3 -3
- package/dist/core/approvals/shortcut-resolver.js +98 -0
- package/dist/core/artifact-chain/dispatcher.js +148 -0
- package/dist/core/artifact-chain/exporter.js +164 -0
- package/dist/core/artifact-chain/state.js +243 -0
- package/dist/core/artifact-chain/steps.js +169 -0
- package/dist/core/ask-user/question.js +92 -0
- package/dist/core/audit/audit-trail.js +275 -0
- package/dist/core/auth/ensure-authenticated.js +129 -0
- package/dist/core/auth/env-provider.js +238 -0
- package/dist/core/auto-open-browser.js +4 -4
- package/dist/core/auto-update/channels.js +122 -0
- package/dist/core/auto-update/checker.js +241 -0
- package/dist/core/auto-update/state.js +235 -0
- package/dist/core/bare-mode/index.js +107 -0
- package/dist/core/bash/redirect.js +281 -0
- package/dist/core/bash-classifier.js +436 -40
- package/dist/core/checkpoint/resumer.js +149 -0
- package/dist/core/checkpoint/rewinder.js +291 -0
- package/dist/core/checkpoints/shadow-git.js +670 -0
- package/dist/core/citations/parser.js +109 -0
- package/dist/core/classifier/yolo-classifier.js +88 -0
- package/dist/core/codegraph/db.js +506 -0
- package/dist/core/codegraph/decision-store.js +248 -0
- package/dist/core/codegraph/detect-repo.js +459 -0
- package/dist/core/codegraph/install.js +134 -0
- package/dist/core/codegraph/offer-hook.js +220 -0
- package/dist/core/codegraph/parser.js +71 -0
- package/dist/core/codegraph/types.js +34 -0
- package/dist/core/compact/auto-trigger.js +96 -0
- package/dist/core/compact/buffer-rewriter.js +115 -0
- package/dist/core/compact/summarizer.js +208 -0
- package/dist/core/compact/token-counter.js +108 -0
- package/dist/core/consensus/anvil-fanout.js +25 -25
- package/dist/core/consensus/diff-capture.js +121 -12
- package/dist/core/consensus/rubric.js +21 -21
- package/dist/core/context/builder.js +6 -6
- package/dist/core/context/compaction-events.js +8 -8
- package/dist/core/context/compaction.js +31 -31
- package/dist/core/context/index.js +15 -8
- package/dist/core/context/invariants.js +51 -51
- package/dist/core/context/markdown-loader.js +28 -10
- package/dist/core/context/markdown-traverse.js +255 -0
- package/dist/core/context/pugiignore.js +41 -41
- package/dist/core/context/repo-skeleton.js +37 -37
- package/dist/core/context/tool-eviction.js +55 -0
- package/dist/core/context/watcher.js +32 -32
- package/dist/core/context/working-set.js +23 -23
- package/dist/core/coordinator/agent-tools.js +77 -0
- package/dist/core/coordinator/agent-toolset.js +65 -0
- package/dist/core/coordinator/fsm.js +73 -0
- package/dist/core/coordinator/mode-fsm.js +70 -0
- package/dist/core/cost/rate-card.js +129 -0
- package/dist/core/cost/tracker.js +221 -0
- package/dist/core/credentials.js +13 -13
- package/dist/core/cron/scheduler.js +138 -0
- package/dist/core/denial-tracking/index.js +8 -0
- package/dist/core/denial-tracking/state.js +264 -0
- package/dist/core/diagnostics/probe-runner.js +93 -0
- package/dist/core/diagnostics/probes/api.js +46 -0
- package/dist/core/diagnostics/probes/auth.js +93 -0
- package/dist/core/diagnostics/probes/bare-mode.js +42 -0
- package/dist/core/diagnostics/probes/cli-version.js +127 -0
- package/dist/core/diagnostics/probes/config.js +72 -0
- package/dist/core/diagnostics/probes/denial-tracking.js +57 -0
- package/dist/core/diagnostics/probes/disk.js +81 -0
- package/dist/core/diagnostics/probes/engine-live.js +46 -0
- package/dist/core/diagnostics/probes/git.js +65 -0
- package/dist/core/diagnostics/probes/hooks.js +118 -0
- package/dist/core/diagnostics/probes/mcp.js +75 -0
- package/dist/core/diagnostics/probes/node.js +59 -0
- package/dist/core/diagnostics/probes/pnpm.js +36 -0
- package/dist/core/diagnostics/probes/pugi-md.js +89 -0
- package/dist/core/diagnostics/probes/sandbox.js +72 -0
- package/dist/core/diagnostics/probes/session.js +74 -0
- package/dist/core/diagnostics/probes/status-snapshot.js +488 -0
- package/dist/core/diagnostics/probes/workspace.js +63 -0
- package/dist/core/diagnostics/types.js +70 -0
- package/dist/core/dispatch/cache-cleanup.js +197 -0
- package/dist/core/dispatch/cache-handoff.js +295 -0
- package/dist/core/edits/apply-patch-layer-e.js +189 -0
- package/dist/core/edits/dispatch.js +333 -7
- package/dist/core/edits/format-detector.js +260 -0
- package/dist/core/edits/format-matrix.js +26 -0
- package/dist/core/edits/fuzzy-ladder.js +650 -0
- package/dist/core/edits/index.js +5 -1
- package/dist/core/edits/journal.js +199 -0
- package/dist/core/edits/layer-a-apply.js +15 -15
- package/dist/core/edits/layer-a-fuzzy-apply.js +198 -0
- package/dist/core/edits/layer-b-apply.js +9 -9
- package/dist/core/edits/layer-c-apply.js +6 -6
- package/dist/core/edits/layer-d-ast.js +557 -14
- package/dist/core/edits/marker-parser.js +12 -12
- package/dist/core/edits/security-gate.js +27 -27
- package/dist/core/edits/verify-hook.js +273 -0
- package/dist/core/edits/worktree.js +322 -0
- package/dist/core/engine/anvil-client.js +214 -26
- package/dist/core/engine/auto-compact.js +247 -0
- package/dist/core/engine/budgets.js +220 -0
- package/dist/core/engine/compact-llm-summarizer.js +124 -0
- package/dist/core/engine/context-prefix.js +155 -0
- package/dist/core/engine/index.js +1 -1
- package/dist/core/engine/intensity.js +163 -0
- package/dist/core/engine/intent.js +260 -0
- package/dist/core/engine/native-pugi.js +1559 -227
- package/dist/core/engine/prompts.js +192 -16
- package/dist/core/engine/strip-internal-fields.js +124 -0
- package/dist/core/engine/tool-bridge.js +1887 -59
- package/dist/core/engine/verification-patterns.js +195 -0
- package/dist/core/evaluation/golden-dataset.js +293 -0
- package/dist/core/feedback/queue.js +177 -0
- package/dist/core/feedback/submitter.js +145 -0
- package/dist/core/file-cache.js +113 -1
- package/dist/core/flatten/flatten-repo.js +439 -0
- package/dist/core/format/osc8-link.js +28 -0
- package/dist/core/hook-chains.js +392 -0
- package/dist/core/hooks/citation-verify-hook.js +138 -0
- package/dist/core/hooks/citation-verify.js +112 -0
- package/dist/core/hooks/events.js +46 -0
- package/dist/core/hooks/index.js +15 -0
- package/dist/core/hooks/registry.js +216 -0
- package/dist/core/hooks/runner.js +236 -0
- package/dist/core/hooks/v2/event-emitter.js +115 -0
- package/dist/core/hooks/v2/executor.js +282 -0
- package/dist/core/hooks/v2/index.js +25 -0
- package/dist/core/hooks/v2/lifecycle.js +104 -0
- package/dist/core/hooks/v2/loader.js +216 -0
- package/dist/core/hooks/v2/matcher.js +125 -0
- package/dist/core/hooks/v2/trust.js +143 -0
- package/dist/core/hooks/v2/types.js +86 -0
- package/dist/core/hooks/worktree-events.js +158 -0
- package/dist/core/image/renderer.js +71 -0
- package/dist/core/init/detector.js +582 -0
- package/dist/core/init/template-renderer.js +242 -0
- package/dist/core/jobs/registry.js +18 -18
- package/dist/core/ledger/results-tsv.js +142 -0
- package/dist/core/log-discipline/stdout-redirect.js +51 -0
- package/dist/core/lsp/cache.js +105 -0
- package/dist/core/lsp/client.js +1229 -0
- package/dist/core/lsp/language-detect.js +66 -0
- package/dist/core/lsp/post-edit-diagnostics.js +171 -0
- package/dist/core/lsp/server-detect.js +173 -0
- package/dist/core/lsp/symbol-cache.js +162 -0
- package/dist/core/lsp/symbol-tools.js +664 -0
- package/dist/core/mcp/client.js +97 -28
- package/dist/core/mcp/http-server.js +553 -0
- package/dist/core/mcp/orchestrator-config.js +192 -0
- package/dist/core/mcp/orchestrator-tools.js +806 -0
- package/dist/core/mcp/permission.js +190 -0
- package/dist/core/mcp/registry.js +39 -17
- package/dist/core/mcp/server-tools.js +219 -0
- package/dist/core/mcp/server.js +397 -0
- package/dist/core/mcp/trust.js +10 -10
- package/dist/core/memory/dual-write.js +416 -0
- package/dist/core/memory/passive-extract.js +130 -0
- package/dist/core/memory/phase1-kinds.js +20 -0
- package/dist/core/memory/secret-scanner.js +304 -0
- package/dist/core/memory-sync/queue.js +170 -0
- package/dist/core/metrics/extract.js +113 -0
- package/dist/core/modes/roo-modes.js +68 -0
- package/dist/core/notes/notes-paths.js +113 -0
- package/dist/core/notes/notes-recorder.js +140 -0
- package/dist/core/notes/notes-writer.js +53 -0
- package/dist/core/notes/renderers.js +0 -0
- package/dist/core/notes/slug.js +105 -0
- package/dist/core/onboarding/ensure-initialized.js +133 -0
- package/dist/core/onboarding/marker.js +111 -0
- package/dist/core/onboarding/telemetry-state.js +108 -0
- package/dist/core/output-style/presets.js +176 -0
- package/dist/core/output-style/state.js +185 -0
- package/dist/core/path-security.js +287 -5
- package/dist/core/permission.js +82 -22
- package/dist/core/permissions/auto-classifier.js +124 -0
- package/dist/core/permissions/bash-parser.js +371 -0
- package/dist/core/permissions/circuit-breaker.js +83 -0
- package/dist/core/permissions/constrained-edit.js +91 -0
- package/dist/core/permissions/gate.js +278 -0
- package/dist/core/permissions/index.js +20 -0
- package/dist/core/permissions/mode.js +174 -0
- package/dist/core/permissions/network-egress.js +137 -0
- package/dist/core/permissions/state.js +241 -0
- package/dist/core/permissions/tool-class.js +107 -0
- package/dist/core/plan-mode/ui-state.js +51 -0
- package/dist/core/plans/plan-artifact.js +721 -0
- package/dist/core/policy-limits/etag-store.js +122 -0
- package/dist/core/prd-check/parser.js +215 -0
- package/dist/core/prd-check/reporter.js +127 -0
- package/dist/core/prd-check/session-review.js +557 -0
- package/dist/core/prd-check/verifiers.js +223 -0
- package/dist/core/prompt-cache/client-cache.js +99 -0
- package/dist/core/prompts/assembly.js +29 -0
- package/dist/core/prompts/registry.js +364 -0
- package/dist/core/pugi-gitignore.js +52 -0
- package/dist/core/pugi-md/cc-compat-rules.js +735 -0
- package/dist/core/pugi-md/context-injector.js +76 -0
- package/dist/core/pugi-md/walk-up.js +207 -0
- package/dist/core/python/uv-installer.js +270 -0
- package/dist/core/python/uv-resolver.js +83 -0
- package/dist/core/rate-limit/narrator.js +146 -0
- package/dist/core/recipes/cli-types.js +20 -0
- package/dist/core/recipes/loader.js +103 -0
- package/dist/core/recipes/runner.js +345 -0
- package/dist/core/recipes/schema.js +587 -0
- package/dist/core/release-notes/parser.js +241 -0
- package/dist/core/release-notes/state.js +116 -0
- package/dist/core/repl/ask.js +37 -37
- package/dist/core/repl/cancellation.js +26 -26
- package/dist/core/repl/cap-warning.js +4 -4
- package/dist/core/repl/clipboard-read.js +11 -11
- package/dist/core/repl/dispatch-fsm.js +12 -12
- package/dist/core/repl/engine-bridge.js +303 -0
- package/dist/core/repl/history-search.js +15 -15
- package/dist/core/repl/history.js +28 -18
- package/dist/core/repl/kill-ring.js +5 -5
- package/dist/core/repl/model-pricing.js +135 -0
- package/dist/core/repl/privacy-banner.js +22 -22
- package/dist/core/repl/session.js +2714 -228
- package/dist/core/repl/slash-commands.js +572 -40
- package/dist/core/repl/store/index.js +1 -1
- package/dist/core/repl/store/jsonl-log.js +22 -22
- package/dist/core/repl/store/lockfile.js +10 -10
- package/dist/core/repl/store/session-store.js +136 -107
- package/dist/core/repl/store/types.js +15 -15
- package/dist/core/repl/store/uuid-v7.js +12 -12
- package/dist/core/repl/tool-route.js +382 -0
- package/dist/core/repl/workspace-context.js +43 -21
- package/dist/core/repo-map/build.js +125 -0
- package/dist/core/repo-map/cache.js +185 -0
- package/dist/core/repo-map/extractor.js +254 -0
- package/dist/core/repo-map/formatter.js +145 -0
- package/dist/core/repo-map/page-rank.js +105 -0
- package/dist/core/repo-map/scanner.js +211 -0
- package/dist/core/retro/git-collector.js +251 -0
- package/dist/core/retro/health-card.js +25 -0
- package/dist/core/retro/metrics.js +342 -0
- package/dist/core/retro/narrative.js +249 -0
- package/dist/core/retro/plane-collector.js +274 -0
- package/dist/core/retro/pr-issue-link.js +65 -0
- package/dist/core/retro/types.js +16 -0
- package/dist/core/retry-budget/budget.js +284 -0
- package/dist/core/retry-budget/index.js +5 -0
- package/dist/core/retry-budget/retry-cap.js +74 -0
- package/dist/core/routing/lead-worker.js +43 -0
- package/dist/core/routing/pre-flight-estimator.js +108 -0
- package/dist/core/runs/run-tree.js +103 -0
- package/dist/core/sandboxing/adapter.js +29 -0
- package/dist/core/sandboxing/index.js +49 -0
- package/dist/core/sandboxing/none.js +19 -0
- package/dist/core/sandboxing/seatbelt.js +183 -0
- package/dist/core/security/injection-scanner.js +367 -0
- package/dist/core/security/output-filter.js +418 -0
- package/dist/core/session/env-file.js +105 -0
- package/dist/core/session/section-budgets.js +140 -0
- package/dist/core/session.js +119 -0
- package/dist/core/settings.js +378 -5
- package/dist/core/share/formatter.js +271 -0
- package/dist/core/share/redactor.js +221 -0
- package/dist/core/share/uploader.js +267 -0
- package/dist/core/skills/defaults.js +457 -0
- package/dist/core/skills/loader.js +22 -22
- package/dist/core/skills/sources.js +27 -27
- package/dist/core/smoke/headless-driver.js +174 -0
- package/dist/core/smoke/orchestrator.js +194 -0
- package/dist/core/smoke/runner.js +238 -0
- package/dist/core/smoke/scenario-parser.js +316 -0
- package/dist/core/statusline.js +99 -0
- package/dist/core/subagents/dispatcher-real.js +600 -0
- package/dist/core/subagents/dispatcher.js +146 -52
- package/dist/core/subagents/index.js +19 -6
- package/dist/core/subagents/isolation-matrix.js +213 -0
- package/dist/core/subagents/spawn.js +19 -4
- package/dist/core/telemetry/emitter.js +229 -0
- package/dist/core/telemetry/queue.js +251 -0
- package/dist/core/theme/context.js +91 -0
- package/dist/core/theme/presets.js +228 -0
- package/dist/core/theme/state.js +181 -0
- package/dist/core/todos/invariant.js +10 -0
- package/dist/core/todos/state.js +177 -0
- package/dist/core/tool-schema/compressor.js +89 -0
- package/dist/core/transport/version-interceptor.js +166 -0
- package/dist/core/trust.js +2 -2
- package/dist/core/tui/thinking-block.js +64 -0
- package/dist/core/vim/keymap.js +288 -0
- package/dist/core/vim/state.js +92 -0
- package/dist/core/watch-markers/marker-watcher.js +133 -0
- package/dist/core/worktree/include-parser.js +249 -0
- package/dist/core/worktree-manager/cleanup.js +123 -0
- package/dist/core/worktree-manager/manager.js +303 -0
- package/dist/index.js +36 -0
- package/dist/runtime/bootstrap.js +190 -0
- package/dist/runtime/cli.js +4536 -477
- package/dist/runtime/commands/agents.js +31 -31
- package/dist/runtime/commands/budget.js +5 -5
- package/dist/runtime/commands/cancel.js +231 -0
- package/dist/runtime/commands/chain.js +489 -0
- package/dist/runtime/commands/codegraph-status.js +227 -0
- package/dist/runtime/commands/compact.js +297 -0
- package/dist/runtime/commands/config.js +74 -40
- package/dist/runtime/commands/cost.js +199 -0
- package/dist/runtime/commands/delegate.js +312 -0
- package/dist/runtime/commands/dispatch.js +126 -0
- package/dist/runtime/commands/doctor.js +579 -0
- package/dist/runtime/commands/feedback.js +184 -0
- package/dist/runtime/commands/hooks.js +187 -0
- package/dist/runtime/commands/index-cmd.js +353 -0
- package/dist/runtime/commands/init.js +254 -0
- package/dist/runtime/commands/lsp.js +368 -0
- package/dist/runtime/commands/mcp.js +935 -0
- package/dist/runtime/commands/memory.js +582 -0
- package/dist/runtime/commands/model.js +237 -0
- package/dist/runtime/commands/onboarding.js +275 -0
- package/dist/runtime/commands/patch.js +128 -0
- package/dist/runtime/commands/permissions.js +112 -0
- package/dist/runtime/commands/plan.js +143 -0
- package/dist/runtime/commands/prd-check.js +285 -0
- package/dist/runtime/commands/privacy.js +17 -17
- package/dist/runtime/commands/recipe.js +325 -0
- package/dist/runtime/commands/redo-blob-store.js +92 -0
- package/dist/runtime/commands/redo.js +361 -0
- package/dist/runtime/commands/release-notes.js +229 -0
- package/dist/runtime/commands/repo-map.js +95 -0
- package/dist/runtime/commands/report.js +299 -0
- package/dist/runtime/commands/resume.js +118 -0
- package/dist/runtime/commands/review-consensus.js +68 -53
- package/dist/runtime/commands/rewind.js +333 -0
- package/dist/runtime/commands/roster.js +117 -0
- package/dist/runtime/commands/servers.js +236 -0
- package/dist/runtime/commands/sessions.js +163 -0
- package/dist/runtime/commands/share.js +316 -0
- package/dist/runtime/commands/skills.js +31 -31
- package/dist/runtime/commands/status.js +186 -0
- package/dist/runtime/commands/stickers.js +82 -0
- package/dist/runtime/commands/style.js +194 -0
- package/dist/runtime/commands/theme.js +196 -0
- package/dist/runtime/commands/undo.js +54 -22
- package/dist/runtime/commands/update.js +289 -0
- package/dist/runtime/commands/vim.js +140 -0
- package/dist/runtime/commands/worktree.js +177 -0
- package/dist/runtime/commands/worktrees.js +155 -0
- package/dist/runtime/deprecation-warning.js +69 -0
- package/dist/runtime/engine-exit-code.js +50 -0
- package/dist/runtime/headless-repl.js +195 -0
- package/dist/runtime/headless.js +548 -0
- package/dist/runtime/load-hooks-or-exit.js +71 -0
- package/dist/runtime/plan-decompose.js +531 -0
- package/dist/runtime/sigint-guard.js +272 -0
- package/dist/runtime/stream-renderer.js +195 -0
- package/dist/runtime/update-check.js +28 -28
- package/dist/runtime/version.js +65 -0
- package/dist/runtime/worktree-bootstrap.js +579 -0
- package/dist/skills/bundled/batch.js +617 -0
- package/dist/skills/bundled/index.js +45 -0
- package/dist/skills/bundled/loop.js +358 -0
- package/dist/skills/bundled/remember.js +383 -0
- package/dist/skills/bundled/simplify.js +289 -0
- package/dist/skills/bundled/skillify.js +373 -0
- package/dist/skills/bundled/stuck.js +558 -0
- package/dist/skills/bundled/verify.js +439 -0
- package/dist/testing/vcr.js +486 -0
- package/dist/tools/agent-tool.js +229 -0
- package/dist/tools/apply-patch.js +556 -0
- package/dist/tools/ask-user-question.js +337 -0
- package/dist/tools/ask-user.js +115 -0
- package/dist/tools/bash.js +624 -46
- package/dist/tools/brief.js +224 -0
- package/dist/tools/cron.js +433 -0
- package/dist/tools/enter-worktree.js +250 -0
- package/dist/tools/exit-worktree.js +147 -0
- package/dist/tools/file-tools.js +161 -44
- package/dist/tools/http-request.js +336 -0
- package/dist/tools/lsp-tools.js +565 -0
- package/dist/tools/mcp-tool.js +260 -0
- package/dist/tools/multi-edit.js +361 -0
- package/dist/tools/powershell.js +268 -0
- package/dist/tools/registry.js +142 -1
- package/dist/tools/server-tools.js +892 -0
- package/dist/tools/skill-tool.js +96 -0
- package/dist/tools/sleep.js +99 -0
- package/dist/tools/synthetic-output.js +133 -0
- package/dist/tools/tasks.js +208 -0
- package/dist/tools/todo-write.js +184 -0
- package/dist/tools/verify-plan-execution.js +295 -0
- package/dist/tools/web-fetch-injection-scanner.js +207 -0
- package/dist/tools/web-fetch.js +195 -10
- package/dist/tools/web-search.js +458 -0
- package/dist/tui/agent-progress-card.js +111 -0
- package/dist/tui/agent-tree.js +22 -1
- package/dist/tui/ask-modal.js +14 -14
- package/dist/tui/ask-user-question-chips.js +315 -0
- package/dist/tui/ask-user-question-prompt.js +203 -0
- package/dist/tui/compact-banner.js +81 -0
- package/dist/tui/conversation-pane.js +85 -11
- package/dist/tui/cost-table.js +111 -0
- package/dist/tui/device-flow.js +2 -2
- package/dist/tui/doctor-table.js +46 -0
- package/dist/tui/feedback-prompt.js +156 -0
- package/dist/tui/input-box.js +247 -32
- package/dist/tui/login-picker.js +3 -3
- package/dist/tui/markdown-render.js +6 -6
- package/dist/tui/multi-file-diff-approval.js +375 -0
- package/dist/tui/onboarding-wizard.js +240 -0
- package/dist/tui/permissions-picker.js +86 -0
- package/dist/tui/render.js +36 -1
- package/dist/tui/repl-render.js +405 -32
- package/dist/tui/repl-splash-art.js +16 -16
- package/dist/tui/repl-splash-mascot.js +48 -24
- package/dist/tui/repl-splash.js +22 -22
- package/dist/tui/repl.js +136 -43
- package/dist/tui/slash-palette.js +6 -6
- package/dist/tui/splash.js +2 -2
- package/dist/tui/status-bar.js +109 -31
- package/dist/tui/status-table.js +7 -0
- package/dist/tui/stickers-art.js +136 -0
- package/dist/tui/style-table.js +28 -0
- package/dist/tui/theme-table.js +29 -0
- package/dist/tui/thinking-spinner.js +123 -0
- package/dist/tui/tool-stream-pane.js +53 -4
- package/dist/tui/update-banner.js +27 -2
- package/dist/tui/vim-input.js +267 -0
- package/dist/tui/welcome-banner.js +107 -0
- package/dist/tui/welcome-data.js +293 -0
- package/dist/tui/workspace-context.js +2 -2
- package/docs/examples/codegraph.mcp.json +10 -0
- package/package.json +25 -7
- package/test/scenarios/codegen-create-file.scenario.txt +13 -0
- package/test/scenarios/compact-force.scenario.txt +12 -0
- package/test/scenarios/identity.scenario.txt +11 -0
- package/test/scenarios/persona-handoff.scenario.txt +12 -0
- package/test/scenarios/walkback.scenario.txt +12 -0
- package/dist/core/engine/compaction-hook.js +0 -154
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@pugi/cli` are documented here. The file follows the
|
|
4
|
+
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) convention with newer
|
|
5
|
+
releases listed first. Section format: `## [<version>] - <YYYY-MM-DD>`.
|
|
6
|
+
|
|
7
|
+
The bundled `pugi release-notes` command parses this file and renders sections
|
|
8
|
+
strictly newer than `~/.pugi/.last-seen-version` after every upgrade.
|
|
9
|
+
|
|
10
|
+
## [0.1.0-beta.88] - 2026-06-02
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **Pugi identity intro no longer chants on later turns**. The output gate now
|
|
14
|
+
strips the canonical long-form intro ("I'm Pugi - your engineering copilot.
|
|
15
|
+
Tell me what you need...") and its Russian variant on mid-thread replies.
|
|
16
|
+
Operators were seeing the intro re-emit on turn 2+ after a session-resume
|
|
17
|
+
or autonomous tick.
|
|
18
|
+
- **Ctrl+C double-press exit guard**. A single Ctrl+C in the REPL no longer
|
|
19
|
+
kills the CLI. First press prompts "Press Ctrl+C again to exit (within 2s)
|
|
20
|
+
or any key to continue". Second press within 2s exits cleanly; any other
|
|
21
|
+
key cancels. Headless mode emits a `session-end` envelope and exits 0.
|
|
22
|
+
- **Persona no longer over-clarifies trivial creative tasks**. Asking for a
|
|
23
|
+
well-known game / demo / todo app now picks reasonable defaults and starts
|
|
24
|
+
building in one turn. Ambiguous tasks (auth, deploy targets) still ask
|
|
25
|
+
≤ 3 short choices via the `ask_user_question` tool.
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
- **Short-format AskUserQuestion chip renderer**. Up to 3 questions render
|
|
29
|
+
side-by-side as Ink chips with ▸ default highlight, ↑↓ in-question nav,
|
|
30
|
+
←→/Tab between questions, 1-9 jump, [s] skip-with-default, [Esc] cancel,
|
|
31
|
+
[Enter] commit. Labels truncate at 5 words / 22 chars. Caller can opt
|
|
32
|
+
into a non-TTY numbered fallback via `forceFallback`.
|
|
33
|
+
|
|
34
|
+
### Security
|
|
35
|
+
- **npm publish leak-gate hardening**. `prepublishOnly` now runs a
|
|
36
|
+
banned-string scan against the staged tarball (`tools/scrub/scan-tarball.sh`)
|
|
37
|
+
covering personal names, competitor refs, internal codenames, engineering
|
|
38
|
+
provenance, absolute paths, brand legacy, and secret-token shapes.
|
|
39
|
+
Per-line `[pugi-leak-ok]` allowlist marker for legitimate references;
|
|
40
|
+
path allowlist for LICENSE / THIRD_PARTY_NOTICES files where MIT requires
|
|
41
|
+
copyright-holder name. Synthetic injection regression test runs in CI.
|
|
42
|
+
|
|
43
|
+
### Chore
|
|
44
|
+
- MIT LICENSE copyright holder set to `Pugi.io` (was personal name).
|
|
45
|
+
|
|
46
|
+
## [0.1.0-beta.26] - 2026-05-27
|
|
47
|
+
|
|
48
|
+
### Added
|
|
49
|
+
- RAG consumer middleware on admin-api () — XML `<rag-context>`
|
|
50
|
+
block, persona allowlist (Pugi / Hiroshi / Vera), 2000-token cap,
|
|
51
|
+
and the Pugi observability stack () shipped earlier today.
|
|
52
|
+
|
|
53
|
+
### Notes
|
|
54
|
+
- CLI surface unchanged in this bump — the version bump tracks lockstep with
|
|
55
|
+
the admin-api redeploy so `--version` reflects the live server's
|
|
56
|
+
feature set during the alpha-7 sprint.
|
|
57
|
+
|
|
58
|
+
## [0.1.0-beta.23] - 2026-05-27
|
|
59
|
+
|
|
60
|
+
### Added
|
|
61
|
+
- L30 `pugi theme` + `/theme` — TUI color presets (default / dark / light / colorblind) ().
|
|
62
|
+
- L24 `pugi release-notes` + `/release-notes` — changelog diff after upgrade
|
|
63
|
+
with `~/.pugi/.last-seen-version` tracking and `--reset` flag ().
|
|
64
|
+
|
|
65
|
+
### Fixed
|
|
66
|
+
- vim-input — useRef for shadow cursor + pending, lift `onSubmit` out of `setState` ().
|
|
67
|
+
|
|
68
|
+
## [0.1.0-beta.22] - 2026-05-27
|
|
69
|
+
|
|
70
|
+
### Added
|
|
71
|
+
- L24 `pugi release-notes` + `/release-notes` — changelog diff after upgrade
|
|
72
|
+
with `~/.pugi/.last-seen-version` tracking and `--reset` flag.
|
|
73
|
+
- L25 `/onboarding` first-run interactive setup wizard ().
|
|
74
|
+
- L18 output-style presets — voice register dial ().
|
|
75
|
+
- L33 `/stickers` brand-personality gimmick ().
|
|
76
|
+
- L16 `TodoWriteTool` single-in-progress invariant ().
|
|
77
|
+
- L22 `--bare` flag — skip project auto-discovery ().
|
|
78
|
+
- L21 `/feedback` in-CLI collector.
|
|
79
|
+
- L20 `/share` session transcript export.
|
|
80
|
+
|
|
81
|
+
### Fixed
|
|
82
|
+
- P1 stickers await + style buffered output + todo-write zod parse ().
|
|
83
|
+
|
|
84
|
+
## [0.1.0-beta.21] - 2026-05-27
|
|
85
|
+
|
|
86
|
+
### Added
|
|
87
|
+
- L7 `/plan` quick mode-switch + one-shot dispatch ().
|
|
88
|
+
- L31 tool retry budget per command ().
|
|
89
|
+
- L19 `/cost` + `/usage` token + dollar accounting ().
|
|
90
|
+
- L34 `pugi status` — session snapshot ().
|
|
91
|
+
- L11 `DenialTrackingState` model-facing denial aggregate ().
|
|
92
|
+
- L6 permission modes — canonical 4-mode gate ().
|
|
93
|
+
- L8 `/compact` command + auto-trigger + boundary marker ().
|
|
94
|
+
- L17 `pugi doctor` — environment health report ().
|
|
95
|
+
- L13 `/mcp remove` + `doctor` + `logs` + `restart` subcommands ().
|
|
96
|
+
- L3 internal underscore-prefix tool-arg convention ().
|
|
97
|
+
- L2 `z.strictObject` all tool schemas + revert beta.17 aliases ().
|
|
98
|
+
- L5 `AskUserQuestionTool` structured multi-choice — kills fake-dispatch ().
|
|
99
|
+
- L1 stale-read gate — reject `FileEdit` if file changed since last read ().
|
|
100
|
+
|
|
101
|
+
### Fixed
|
|
102
|
+
- Pugi-review per-file chunking — unblock multi-file diffs (Anvil HTTP 400) ().
|
|
103
|
+
- Privacy `PiiScrubberService` regex fallback + `@Inject` DI fix ().
|
|
104
|
+
|
|
105
|
+
## [0.1.0-beta.20] - 2026-05-26
|
|
106
|
+
|
|
107
|
+
### Added
|
|
108
|
+
- Pugi codegen real dispatch — Pugi actually writes files instead of describing
|
|
109
|
+
them ().
|
|
110
|
+
- Live agent progress display — `pugi jobs --watch` (CC compact style) ().
|
|
111
|
+
- PAVF-7 `pugi report --from-error` — field bug capture ().
|
|
112
|
+
- Opensource template fetch + bundled starters — не reinventing ().
|
|
113
|
+
|
|
114
|
+
### Fixed
|
|
115
|
+
- Dialog quality — RU mirror + brevity + memory + force dispatch + render ().
|
|
116
|
+
- Pugi anti-greenfield + anti-emoji discipline rules ().
|
|
117
|
+
- Persona output gate — Pugi strip + fake-dispatch detector (P0) ().
|
|
118
|
+
|
|
119
|
+
## [0.1.0-beta.19] - 2026-05-26
|
|
120
|
+
|
|
121
|
+
### Added
|
|
122
|
+
- Pugi-review batch review followups — silent PASS + safeGit split + quota
|
|
123
|
+
migration + cleanup dead code ().
|
|
124
|
+
|
|
125
|
+
### Fixed
|
|
126
|
+
- Replace CJS `require()` в ESM bundle — bare REPL crash on beta.16 ().
|
|
127
|
+
|
|
128
|
+
## [0.1.0-beta.18] - 2026-05-26
|
|
129
|
+
|
|
130
|
+
### Added
|
|
131
|
+
- Initial public beta of `@pugi/cli` with REPL, dispatch, sync, review, and
|
|
132
|
+
doctor surfaces. Establishes the baseline for the leak-parity sprint.
|
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,23 +1,65 @@
|
|
|
1
1
|
# Pugi CLI
|
|
2
2
|
|
|
3
3
|
`pugi` — terminal-native software execution system. Run agents on your repo,
|
|
4
|
-
hand jobs off to the
|
|
5
|
-
by default.
|
|
4
|
+
hand jobs off to the Pugi Console or a remote runner, and keep every artifact
|
|
5
|
+
local by default.
|
|
6
|
+
|
|
7
|
+
Current published version: **`@pugi/cli@0.1.0-beta.99`** (2026-06-05).
|
|
6
8
|
|
|
7
9
|
- **Local-first.** Every plan, diff, and artifact lives under `.pugi/` in your
|
|
8
10
|
repo. Nothing leaves the machine unless you explicitly run `pugi handoff` or
|
|
9
11
|
`pugi sync`.
|
|
12
|
+
- **REPL-default.** Type `pugi` with no arguments and you drop into an
|
|
13
|
+
engine-backed chat REPL that can write files, start dev servers, probe
|
|
14
|
+
health, and run tests against real evidence (beta.96+).
|
|
10
15
|
- **Web continuation.** When a job needs collaboration, an approval, or a clean
|
|
11
|
-
Linux runner, hand it off to the
|
|
16
|
+
Linux runner, hand it off to the Console at `app.pugi.io`.
|
|
12
17
|
- **One CLI, three install paths.** npm, Homebrew tap, and a one-liner shell
|
|
13
18
|
script.
|
|
14
19
|
|
|
20
|
+
## Recent shipped (beta.94 → beta.99)
|
|
21
|
+
|
|
22
|
+
- **REPL as first-class engine path** (beta.96, PR A). REPL chat goes through
|
|
23
|
+
the Pugi engine loop, advertises tools, writes files on disk.
|
|
24
|
+
- **Phase 1 runtime primitives** (beta.97, ): `server_start`,
|
|
25
|
+
`server_stop`, `server_health`, `server_logs`, `http_request` available in
|
|
26
|
+
the tool surface so the agent can prove a server is up (pid + health 200)
|
|
27
|
+
rather than narrating it.
|
|
28
|
+
- **Conversation-aware artifact intent** (beta.97, ). Multi-turn
|
|
29
|
+
confirmation triggers auto-dispatch; the agent stops asking "should I?" mid
|
|
30
|
+
build.
|
|
31
|
+
- **Multi-turn context threading** (beta.98, PR C). REPL `dispatchBrief`
|
|
32
|
+
threads recent turns to the engine bridge; engine budget bumped к 400K.
|
|
33
|
+
- **Budget cap removed** (beta.99). 120K cap retired in favour of the
|
|
34
|
+
Claude/Codex/Aider auto-compact pattern. Effective ceiling is now 5M tokens
|
|
35
|
+
on the long-context lane.
|
|
36
|
+
- **Verification gate** (beta.94, ). Failing `npm test` propagates
|
|
37
|
+
`exit != 0` and forces `status != done`. No more "fake green" completions.
|
|
38
|
+
|
|
39
|
+
## Coming next (open PRs, awaiting merge as of 2026-06-05)
|
|
40
|
+
|
|
41
|
+
- **LLM-summary auto-compact** (PR E #916). REPL session history is summarized
|
|
42
|
+
via Gemini Flash on the Anvil gateway before re-entering the context window,
|
|
43
|
+
so long sessions stay coherent instead of getting truncated.
|
|
44
|
+
- **Obsidian-style notes** (PR F #918). Every session writes to
|
|
45
|
+
`.pugi/notes/<session-id>.md`, per-file notes to `.pugi/notes/files/<path>.md`,
|
|
46
|
+
and a daily journal entry to `.pugi/journal/YYYY-MM-DD.md`. Backed by
|
|
47
|
+
Obsidian-compatible wiki-link syntax.
|
|
48
|
+
- **`/servers` slash command** (PR H #919). List and kill dev servers spawned
|
|
49
|
+
via `server_start` from the REPL. `/servers` prints the running set,
|
|
50
|
+
`/servers stop <jobId>` terminates one.
|
|
51
|
+
- **USD + English defaults for generated apps** (PR I #920). When you brief the
|
|
52
|
+
agent in Russian or any other locale, generated UIs default к **English text
|
|
53
|
+
+ USD prices** unless you explicitly say "target market is X" in the brief.
|
|
54
|
+
Eliminates the "₽ rubles in a UI for US customers" regression. Pair with the
|
|
55
|
+
`/servers stop` hint в the `code` / `build` / `fix` prompts.
|
|
56
|
+
|
|
15
57
|
## Install
|
|
16
58
|
|
|
17
59
|
### npm (works everywhere with Node 20+)
|
|
18
60
|
|
|
19
61
|
```bash
|
|
20
|
-
npm install -g pugi
|
|
62
|
+
npm install -g @pugi/cli
|
|
21
63
|
pugi --version
|
|
22
64
|
```
|
|
23
65
|
|
|
@@ -29,7 +71,7 @@ pugi --version
|
|
|
29
71
|
```
|
|
30
72
|
|
|
31
73
|
The formula declares a Node 20+ runtime dependency and downloads the published
|
|
32
|
-
npm tarball, so the result is identical to `npm install -g pugi`.
|
|
74
|
+
npm tarball, so the result is identical to `npm install -g @pugi/cli`.
|
|
33
75
|
|
|
34
76
|
### One-liner (curl)
|
|
35
77
|
|
|
@@ -38,8 +80,8 @@ curl -fsSL https://pugi.dev/install | sh
|
|
|
38
80
|
```
|
|
39
81
|
|
|
40
82
|
The script detects your OS (Darwin / Linux), bootstraps Node 20+ via Homebrew
|
|
41
|
-
or `apt` if it is missing, and then runs `npm install -g pugi`. It prints
|
|
42
|
-
installed version on success and exits non-zero on any failure. The script
|
|
83
|
+
or `apt` if it is missing, and then runs `npm install -g @pugi/cli`. It prints
|
|
84
|
+
the installed version on success and exits non-zero on any failure. The script
|
|
43
85
|
itself is served from `pugi.dev`; review it at `https://pugi.dev/install` or
|
|
44
86
|
in `apps/admin-api/public/install.sh` before piping into a shell.
|
|
45
87
|
|
|
@@ -143,15 +185,15 @@ returns `status: blocked, reason: sync_upload_not_implemented`).
|
|
|
143
185
|
## Updating
|
|
144
186
|
|
|
145
187
|
```bash
|
|
146
|
-
npm install -g pugi@latest
|
|
147
|
-
brew upgrade pugi
|
|
148
|
-
curl -fsSL https://pugi.dev/install | sh
|
|
188
|
+
npm install -g @pugi/cli@latest # if you installed via npm
|
|
189
|
+
brew upgrade pugi # if you installed via Homebrew
|
|
190
|
+
curl -fsSL https://pugi.dev/install | sh # one-liner re-run is idempotent
|
|
149
191
|
```
|
|
150
192
|
|
|
151
193
|
## Uninstall
|
|
152
194
|
|
|
153
195
|
```bash
|
|
154
|
-
npm uninstall -g pugi
|
|
196
|
+
npm uninstall -g @pugi/cli
|
|
155
197
|
# or
|
|
156
198
|
brew uninstall pugi
|
|
157
199
|
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Third-Party Notices
|
|
2
|
+
|
|
3
|
+
`@pugi/cli` bundles default skill content from third parties on `pugi init`.
|
|
4
|
+
Each entry below carries the full upstream MIT license text required for
|
|
5
|
+
redistribution.
|
|
6
|
+
|
|
7
|
+
## mattpocock/skills
|
|
8
|
+
|
|
9
|
+
Pugi bundles the following skill bodies (ported, attribution preserved in
|
|
10
|
+
each `SKILL.md` header) from https://github.com/mattpocock/skills:
|
|
11
|
+
|
|
12
|
+
- `zoom-out` — `skills/engineering/zoom-out/SKILL.md`
|
|
13
|
+
- `diagnose` — `skills/engineering/diagnose/SKILL.md`
|
|
14
|
+
- `grill-me` — `skills/productivity/grill-me/SKILL.md`
|
|
15
|
+
|
|
16
|
+
Upstream license follows verbatim.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
MIT License
|
|
21
|
+
|
|
22
|
+
Copyright (c) 2026 Matt Pocock
|
|
23
|
+
|
|
24
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
25
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
26
|
+
in the Software without restriction, including without limitation the rights
|
|
27
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
28
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
29
|
+
furnished to do so, subject to the following conditions:
|
|
30
|
+
|
|
31
|
+
The above copyright notice and this permission notice shall be included in all
|
|
32
|
+
copies or substantial portions of the Software.
|
|
33
|
+
|
|
34
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
35
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
36
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
37
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
38
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
39
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
40
|
+
SOFTWARE.
|
package/assets/pugi-mascot.ansi
CHANGED
|
@@ -1,41 +1,16 @@
|
|
|
1
|
-
[?25l[0m[
|
|
2
|
-
[
|
|
3
|
-
[
|
|
4
|
-
[38;2;
|
|
5
|
-
[38;2;
|
|
6
|
-
[38;2;
|
|
7
|
-
[38;2;
|
|
8
|
-
[38;2;
|
|
9
|
-
[
|
|
10
|
-
[
|
|
11
|
-
[38;2;
|
|
12
|
-
[
|
|
13
|
-
[
|
|
14
|
-
[
|
|
15
|
-
[
|
|
16
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄[48;2;3;3;6m▄[38;2;37;41;49;48;2;52;57;67m▄[38;2;53;59;69;48;2;54;59;70m▄[38;2;54;59;70m▄[38;2;55;60;71;48;2;55;60;70m▄[38;2;76;81;90;48;2;79;84;95m▄[38;2;0;0;2;48;2;21;22;27m▄[48;2;0;0;2m▄▄▄▄[38;2;61;65;74;48;2;19;20;25m▄[38;2;80;85;97;48;2;80;85;97m▄[48;2;80;84;97m▄[38;2;79;84;97;48;2;79;85;97m▄[38;2;80;85;97;48;2;80;85;97m▄[38;2;80;86;98;48;2;80;86;98m▄[38;2;81;86;98m▄[38;2;80;86;98;48;2;80;85;97m▄[38;2;80;85;97;48;2;79;85;97m▄[38;2;80;86;98;48;2;80;85;97m▄▄[38;2;81;86;98;48;2;81;86;98m▄[38;2;82;87;99;48;2;82;87;99m▄▄[38;2;83;88;99;48;2;83;88;99m▄[38;2;84;89;100;48;2;84;89;100m▄[38;2;13;13;17;48;2;3;4;6m▄[38;2;8;9;12;48;2;27;28;33m▄[38;2;84;89;100;48;2;85;90;100m▄[38;2;86;91;102;48;2;86;91;101m▄[38;2;18;19;23;48;2;19;20;24m▄[38;2;14;15;19;48;2;15;16;20m▄[38;2;85;89;100;48;2;86;91;101m▄[38;2;85;90;101;48;2;85;90;101m▄[38;2;10;10;14;48;2;28;29;35m▄[38;2;10;11;14;48;2;2;2;5m▄[38;2;83;89;101;48;2;82;88;100m▄[38;2;83;88;100;48;2;83;88;100m▄[38;2;82;88;100;48;2;82;88;100m▄[48;2;82;87;99m▄[38;2;73;77;88;48;2;72;77;87m▄[38;2;0;0;2;48;2;0;0;2m▄[38;2;1;78;123m▄[38;2;1;127;207;48;2;0;0;3m▄[38;2;0;53;90;48;2;0;0;2m▄[38;2;0;0;2m▄▄[48;2;1;38;63m▄[38;2;0;46;75;48;2;1;109;176m▄[38;2;1;106;171;48;2;0;5;10m▄[38;2;0;2;7;48;2;0;0;2m▄[38;2;0;0;2m▄▄▄▄▄[38;2;0;0;3;48;2;23;24;29m▄[38;2;73;77;87;48;2;75;80;91m▄[38;2;53;58;69;48;2;53;58;69m▄▄▄[38;2;36;40;48;48;2;51;57;67m▄[38;2;0;0;2;48;2;2;2;5m▄[48;2;0;0;2m▄▄▄▄▄▄▄▄[0m
|
|
17
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄[38;2;2;2;5;48;2;18;20;26m▄[38;2;51;56;66;48;2;53;58;69m▄[38;2;53;58;69m▄[38;2;65;70;80;48;2;57;62;73m▄[38;2;17;18;21;48;2;49;52;58m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄[38;2;64;68;78;48;2;22;23;28m▄[38;2;80;85;97;48;2;80;86;97m▄[48;2;80;86;98m▄▄[48;2;80;85;97m▄[38;2;79;85;97;48;2;79;84;97m▄[38;2;80;85;97;48;2;80;85;97m▄▄[38;2;79;85;97m▄[38;2;80;85;97m▄▄[38;2;80;86;97m▄[38;2;70;75;85;48;2;81;86;98m▄[38;2;84;88;99;48;2;82;87;99m▄[48;2;83;88;99m▄[38;2;84;89;100;48;2;84;89;100m▄[38;2;85;90;101;48;2;85;90;101m▄[38;2;31;33;38;48;2;21;23;27m▄[38;2;0;0;2;48;2;0;0;2m▄[38;2;57;60;68;48;2;77;81;91m▄[38;2;42;45;52;48;2;84;90;101m▄[38;2;0;0;2;48;2;15;16;20m▄[38;2;0;0;3;48;2;13;14;18m▄[38;2;41;43;49;48;2;84;89;100m▄[38;2;57;60;69;48;2;77;81;91m▄[38;2;0;0;3;48;2;0;0;2m▄[38;2;27;29;34;48;2;19;20;25m▄[38;2;82;88;99;48;2;83;89;100m▄[38;2;83;88;100;48;2;83;88;100m▄▄[38;2;84;89;101m▄[38;2;60;64;72;48;2;72;77;88m▄[38;2;0;0;2;48;2;0;0;2m▄[38;2;0;42;69;48;2;2;119;192m▄[38;2;1;102;164;48;2;0;35;59m▄[38;2;2;93;149;48;2;0;116;192m▄[38;2;1;109;178;48;2;0;0;3m▄[38;2;1;82;134;48;2;0;0;2m▄[38;2;0;1;5m▄[38;2;0;0;2m▄[48;2;0;58;94m▄[38;2;0;66;110;48;2;0;96;154m▄[38;2;0;86;139;48;2;0;0;2m▄[38;2;0;0;2m▄▄▄▄▄[38;2;18;19;23;48;2;48;51;58m▄[38;2;62;67;78;48;2;54;60;70m▄[38;2;53;58;69;48;2;52;58;68m▄[38;2;50;56;66;48;2;53;59;70m▄[38;2;2;2;4;48;2;18;20;25m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄[0m
|
|
18
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄[38;2;19;21;27;48;2;36;40;48m▄[38;2;46;52;62;48;2;54;59;70m▄[38;2;4;5;8;48;2;50;54;62m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄[38;2;57;61;70;48;2;25;27;32m▄[38;2;79;84;97;48;2;80;85;97m▄▄[38;2;79;84;96m▄[38;2;79;84;97m▄[48;2;79;85;97m▄[38;2;78;84;96m▄[38;2;67;72;82m▄[38;2;49;52;61;48;2;80;85;97m▄[38;2;28;30;36;48;2;79;84;97m▄[38;2;2;3;5;48;2;74;80;91m▄[38;2;0;0;2;48;2;46;49;56m▄[48;2;14;15;19m▄[48;2;1;1;4m▄[38;2;7;8;11;48;2;60;64;72m▄[38;2;75;79;90;48;2;83;88;99m▄[38;2;83;88;99;48;2;84;89;100m▄[38;2;84;89;100;48;2;84;88;99m▄[38;2;37;39;45;48;2;38;41;47m▄[38;2;0;0;2;48;2;0;0;3m▄[48;2;4;5;8m▄[48;2;0;0;2m▄▄▄▄[48;2;5;5;8m▄[48;2;0;0;2m▄[38;2;35;37;43;48;2;34;37;43m▄[38;2;83;88;100;48;2;82;88;99m▄[38;2;82;88;100;48;2;83;88;100m▄[38;2;78;83;94;48;2;84;89;101m▄[38;2;9;10;13;48;2;65;69;79m▄[38;2;0;0;2;48;2;1;2;5m▄[48;2;0;0;2m▄▄[48;2;0;0;3m▄▄[48;2;0;8;17m▄[48;2;1;65;105m▄[38;2;0;71;115;48;2;2;92;148m▄[38;2;0;82;132;48;2;0;0;2m▄[38;2;0;0;2m▄▄[48;2;1;77;124m▄[38;2;2;108;178;48;2;0;73;121m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄[38;2;4;5;8;48;2;49;53;62m▄[38;2;47;52;62;48;2;53;58;69m▄[38;2;18;20;25;48;2;35;38;47m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄[0m
|
|
19
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄[48;2;2;3;6m▄[48;2;11;12;17m▄[48;2;0;0;2m▄▄▄▄▄[38;2;59;63;72;48;2;59;63;72m▄[38;2;79;85;97;48;2;79;84;96m▄[38;2;80;85;97m▄[38;2;45;48;55;48;2;70;75;85m▄[38;2;0;0;2;48;2;44;47;54m▄[48;2;25;27;32m▄[48;2;7;7;10m▄[38;2;0;46;69;48;2;0;0;2m▄[38;2;1;79;114m▄[38;2;0;25;35m▄[38;2;0;0;2m▄▄▄▄▄[48;2;20;21;26m▄[38;2;11;12;16;48;2;84;89;100m▄[38;2;0;0;2;48;2;41;44;50m▄[48;2;0;0;2m▄[38;2;12;13;18m▄[38;2;44;47;54m▄[38;2;65;70;80m▄[38;2;79;84;96;48;2;6;7;10m▄[38;2;78;84;96m▄[38;2;65;70;81;48;2;0;0;2m▄[38;2;45;48;56m▄[38;2;15;16;21m▄[38;2;0;0;2;48;2;0;0;3m▄[48;2;37;40;46m▄[38;2;11;12;16;48;2;81;87;99m▄[38;2;0;0;2;48;2;23;25;30m▄[48;2;0;0;2m▄▄▄▄▄[38;2;0;27;43m▄[38;2;0;70;112m▄[38;2;0;45;72m▄[38;2;0;0;2m▄[48;2;1;83;133m▄[38;2;2;112;182;48;2;0;70;115m▄[38;2;0;5;13;48;2;0;0;2m▄[38;2;0;0;2m▄[38;2;1;107;171;48;2;0;106;171m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄[48;2;11;12;16m▄[48;2;2;2;5m▄[48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄[0m
|
|
20
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[38;2;59;63;72;48;2;59;63;73m▄[38;2;80;85;97;48;2;80;85;97m▄[38;2;80;85;98m▄[38;2;45;49;55;48;2;45;48;55m▄[38;2;0;0;2;48;2;0;0;2m▄▄[38;2;0;3;7m▄[38;2;0;175;250;48;2;1;151;224m▄[38;2;1;158;227;48;2;0;191;252m▄[38;2;0;20;27;48;2;1;114;151m▄[38;2;0;0;2;48;2;0;0;2m▄[38;2;0;1;4m▄[38;2;0;23;38m▄[38;2;0;0;2m▄▄▄[38;2;30;33;39m▄[38;2;73;78;89;48;2;5;5;8m▄[38;2;79;85;97;48;2;45;48;56m▄[38;2;80;85;98;48;2;78;84;96m▄[48;2;79;85;97m▄[38;2;79;85;98;48;2;80;85;98m▄[38;2;80;86;98m▄[48;2;80;86;98m▄[48;2;80;85;98m▄[38;2;80;85;98;48;2;80;86;98m▄[38;2;80;86;98;48;2;79;84;97m▄[48;2;46;50;58m▄[38;2;74;79;91;48;2;5;5;9m▄[38;2;32;34;40;48;2;0;0;2m▄[38;2;0;0;3m▄[38;2;0;0;2m▄▄[38;2;0;23;38m▄[38;2;0;0;4m▄[38;2;0;0;2m▄[38;2;0;0;1;48;2;0;3;8m▄[38;2;0;134;215;48;2;0;142;228m▄[38;2;0;158;251;48;2;0;139;224m▄[38;2;0;2;7;48;2;0;0;2m▄[38;2;0;0;2m▄[38;2;1;102;161;48;2;1;101;162m▄[38;2;0;5;13;48;2;0;5;12m▄[38;2;0;0;2;48;2;0;0;2m▄[38;2;0;106;171;48;2;1;107;172m▄[38;2;0;0;3;48;2;0;0;3m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
21
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[38;2;59;63;72;48;2;59;63;71m▄[38;2;80;85;97;48;2;80;85;97m▄▄[38;2;73;78;89;48;2;45;49;56m▄[38;2;5;5;8;48;2;0;0;2m▄[38;2;0;0;2m▄▄[38;2;0;45;64;48;2;0;152;214m▄[38;2;1;154;239;48;2;0;164;251m▄[38;2;0;160;252;48;2;2;83;133m▄[38;2;0;159;251;48;2;0;32;49m▄[38;2;1;151;241;48;2;1;93;147m▄[38;2;0;40;65;48;2;1;124;200m▄[38;2;0;0;2;48;2;0;0;2m▄[38;2;31;33;39m▄[38;2;77;82;94;48;2;44;47;55m▄[38;2;79;84;97;48;2;78;84;96m▄[38;2;78;83;95;48;2;79;85;97m▄[38;2;47;51;59m▄[38;2;5;6;8;48;2;73;78;89m▄[38;2;0;0;2;48;2;47;50;58m▄[38;2;0;0;3;48;2;26;28;34m▄[38;2;7;8;10;48;2;9;10;13m▄[38;2;7;7;10;48;2;8;9;13m▄[38;2;0;0;3;48;2;24;26;31m▄[38;2;0;0;1;48;2;44;47;55m▄[38;2;2;3;5;48;2;70;74;85m▄[38;2;42;45;52;48;2;80;85;97m▄[38;2;78;83;95;48;2;80;86;98m▄[38;2;80;86;98;48;2;80;85;98m▄[48;2;46;49;57m▄[38;2;33;35;41;48;2;0;0;2m▄[38;2;0;0;2m▄[38;2;0;39;62;48;2;0;127;202m▄[38;2;1;151;240;48;2;1;90;148m▄[38;2;1;158;252;48;2;0;32;50m▄[38;2;0;156;251;48;2;1;85;138m▄[38;2;1;149;239;48;2;0;155;251m▄[38;2;0;36;59;48;2;1;128;207m▄[38;2;0;0;2;48;2;0;0;2m▄[38;2;0;0;1m▄[38;2;2;101;161;48;2;1;100;160m▄[38;2;0;5;12;48;2;0;5;12m▄[38;2;0;0;2;48;2;0;0;2m▄[38;2;1;108;171;48;2;1;106;171m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
22
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[38;2;61;64;74;48;2;60;64;73m▄[38;2;81;86;98;48;2;81;86;98m▄[38;2;81;87;99m▄[38;2;82;87;99m▄[38;2;82;88;100;48;2;48;51;58m▄[38;2;18;19;24;48;2;0;0;2m▄[38;2;0;0;2m▄▄[48;2;0;17;28m▄[48;2;0;69;106m▄[48;2;1;70;109m▄[48;2;0;19;32m▄[38;2;13;14;17;48;2;0;0;2m▄[38;2;75;80;91;48;2;21;23;27m▄[38;2;79;84;95;48;2;77;82;93m▄[38;2;76;81;93;48;2;78;83;95m▄[38;2;17;19;23;48;2;74;79;91m▄[38;2;0;0;2;48;2;16;18;23m▄[38;2;15;16;21;48;2;0;0;1m▄[38;2;76;81;92;48;2;20;22;27m▄[38;2;82;87;98;48;2;63;67;76m▄[38;2;83;88;100;48;2;76;81;93m▄[38;2;82;88;99;48;2;81;86;98m▄[38;2;83;88;100;48;2;80;86;98m▄[38;2;82;88;100;48;2;76;81;93m▄[38;2;82;88;99;48;2;62;67;76m▄[38;2;78;83;94;48;2;22;23;28m▄[38;2;16;17;21;48;2;0;0;1m▄[38;2;0;0;3;48;2;15;16;20m▄[38;2;14;15;19;48;2;73;79;90m▄[38;2;76;81;92;48;2;80;85;97m▄[38;2;80;85;98m▄[38;2;76;81;93;48;2;21;23;27m▄[38;2;12;13;17;48;2;0;0;2m▄[38;2;0;0;2;48;2;0;17;30m▄[48;2;0;67;106m▄[48;2;1;67;108m▄[48;2;0;15;27m▄[48;2;0;0;2m▄[38;2;2;49;78m▄[38;2;1;107;171;48;2;1;46;74m▄[38;2;0;5;12;48;2;1;108;175m▄[38;2;0;0;2;48;2;0;1;5m▄[48;2;0;0;2m▄[38;2;0;107;171;48;2;1;108;171m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
23
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[38;2;60;63;73;48;2;60;64;73m▄[38;2;81;86;98;48;2;81;86;98m▄[38;2;66;71;80;48;2;82;87;99m▄[38;2;78;83;94m▄[38;2;82;87;99;48;2;82;88;100m▄[38;2;84;88;99;48;2;69;73;82m▄[38;2;40;43;49;48;2;2;2;4m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄[38;2;57;61;69;48;2;6;7;10m▄[38;2;80;85;97;48;2;68;73;83m▄[38;2;78;84;95;48;2;79;84;96m▄[38;2;23;25;30;48;2;77;82;94m▄[38;2;0;0;2;48;2;20;22;26m▄[48;2;0;0;2m▄[38;2;4;5;8m▄[38;2;24;25;30;48;2;49;53;60m▄[38;2;79;84;95;48;2;82;87;98m▄[38;2;50;54;61;48;2;63;67;77m▄[38;2;16;18;24;48;2;45;48;56m▄[38;2;42;47;57;48;2;69;74;86m▄[38;2;45;50;60;48;2;70;76;87m▄[38;2;20;22;28;48;2;50;54;63m▄[38;2;50;53;60;48;2;60;64;73m▄[38;2;79;84;95;48;2;83;88;99m▄[38;2;24;26;31;48;2;53;57;65m▄[38;2;3;4;7;48;2;0;0;2m▄[38;2;0;0;2m▄[48;2;16;18;22m▄[38;2;19;21;25;48;2;76;82;93m▄[38;2;76;82;93;48;2;79;84;97m▄[38;2;79;84;97;48;2;68;73;83m▄[38;2;56;60;69;48;2;6;7;10m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄[38;2;0;0;3;48;2;0;0;3m▄[38;2;2;105;170;48;2;1;117;189m▄[38;2;0;0;2;48;2;0;4;9m▄[48;2;0;0;2m▄▄▄[38;2;1;106;171;48;2;0;106;172m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
24
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[38;2;60;64;73;48;2;60;64;73m▄[38;2;81;86;97;48;2;80;86;97m▄[38;2;81;86;98;48;2;77;82;93m▄[38;2;26;28;32;48;2;29;31;36m▄[38;2;45;48;55;48;2;83;88;99m▄[38;2;83;87;98;48;2;82;87;98m▄[38;2;82;87;98;48;2;80;85;96m▄[38;2;55;59;66;48;2;13;13;17m▄[38;2;0;0;2;48;2;0;0;2m▄▄[38;2;29;31;36;48;2;6;6;10m▄[38;2;82;87;98;48;2;79;85;96m▄[38;2;42;45;51;48;2;79;85;97m▄[38;2;0;0;2;48;2;27;29;35m▄[38;2;19;21;27;48;2;0;0;2m▄[38;2;46;52;62;48;2;5;5;8m▄[38;2;49;55;65;48;2;35;39;47m▄[38;2;50;55;66;48;2;49;54;64m▄[48;2;23;25;31m▄[38;2;50;56;66;48;2;2;2;5m▄[38;2;29;33;41;48;2;1;1;4m▄[38;2;25;29;36;48;2;23;25;34m▄[38;2;23;25;34;48;2;32;36;44m▄[38;2;20;23;31;48;2;31;35;43m▄[38;2;26;30;39;48;2;23;26;33m▄[38;2;24;26;33;48;2;0;0;3m▄[38;2;45;50;60;48;2;2;2;5m▄[38;2;44;50;60;48;2;20;22;29m▄[38;2;45;50;60;48;2;42;46;57m▄[38;2;45;50;61;48;2;31;35;43m▄[38;2;41;46;56;48;2;3;4;7m▄[38;2;9;10;13;48;2;0;0;2m▄[38;2;0;0;2;48;2;21;22;27m▄[38;2;21;23;27;48;2;77;82;94m▄[38;2;77;82;95;48;2;79;84;96m▄[38;2;24;26;32;48;2;4;4;7m▄[38;2;0;0;1;48;2;0;0;2m▄[38;2;3;117;181;48;2;0;8;14m▄[38;2;1;98;157;48;2;0;67;107m▄[38;2;1;74;119;48;2;1;129;206m▄[38;2;0;75;119;48;2;0;69;110m▄[38;2;0;76;121;48;2;0;68;108m▄[38;2;0;75;121m▄[38;2;0;75;120;48;2;0;69;110m▄[38;2;1;76;120;48;2;1;130;207m▄[38;2;0;99;156;48;2;0;66;107m▄[38;2;1;110;176;48;2;0;6;12m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄[38;2;0;21;36m▄[38;2;0;23;39m▄[38;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
25
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[38;2;60;64;73;48;2;61;64;73m▄[38;2;81;86;97;48;2;81;86;97m▄[38;2;81;86;98;48;2;81;86;98m▄[38;2;80;85;97;48;2;56;60;68m▄[38;2;7;8;10;48;2;1;1;3m▄[38;2;9;9;13;48;2;63;67;76m▄[38;2;78;83;94;48;2;84;89;101m▄[38;2;27;29;35;48;2;46;49;57m▄[38;2;0;0;2;48;2;0;0;2m▄[38;2;0;0;3m▄[38;2;66;70;80;48;2;55;59;67m▄[38;2;20;22;28;48;2;58;62;70m▄[38;2;46;51;60;48;2;5;5;9m▄[38;2;50;55;66;48;2;35;39;46m▄[38;2;51;56;67;48;2;50;56;66m▄▄[38;2;50;56;67;48;2;50;55;66m▄[38;2;51;56;67m▄[48;2;51;56;67m▄[48;2;50;55;66m▄[38;2;52;57;68;48;2;42;47;57m▄[38;2;45;50;60;48;2;7;7;13m▄[38;2;8;9;14;48;2;4;5;7m▄[38;2;6;7;11;48;2;5;5;9m▄[38;2;38;43;53;48;2;6;6;11m▄[38;2;45;50;60;48;2;37;41;50m▄[38;2;45;49;60;48;2;44;49;59m▄[38;2;45;50;60;48;2;45;50;60m▄[38;2;46;51;61;48;2;45;50;61m▄[38;2;45;50;60m▄▄[38;2;45;50;61;48;2;43;48;58m▄[38;2;42;47;57;48;2;8;9;13m▄[38;2;6;7;10;48;2;0;0;2m▄[38;2;0;0;2;48;2;21;23;27m▄[38;2;9;9;13;48;2;42;45;53m▄[38;2;0;0;2;48;2;0;0;3m▄[38;2;1;129;200;48;2;0;131;201m▄[38;2;0;1;6;48;2;0;0;4m▄[38;2;0;47;81;48;2;0;2;7m▄[38;2;0;120;201;48;2;0;8;18m▄[38;2;0;124;204;48;2;0;11;24m▄[48;2;0;10;23m▄[38;2;0;121;202;48;2;0;7;17m▄[38;2;0;50;87;48;2;0;2;9m▄[38;2;0;2;6;48;2;0;1;5m▄[38;2;3;127;199;48;2;0;129;207m▄[38;2;0;37;60;48;2;1;74;120m▄[48;2;0;73;120m▄[38;2;0;37;61;48;2;0;75;122m▄[38;2;1;116;189;48;2;0;120;191m▄[38;2;1;118;194;48;2;0;111;187m▄[38;2;0;8;15;48;2;0;12;23m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄[0m
|
|
26
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[38;2;2;2;4;48;2;43;45;52m▄[38;2;65;69;79;48;2;81;86;98m▄[38;2;81;86;97m▄[48;2;82;87;98m▄[38;2;66;70;80;48;2;37;40;46m▄[38;2;0;0;2;48;2;0;0;2m▄[48;2;24;26;31m▄[48;2;8;8;11m▄[48;2;0;0;2m▄[38;2;22;24;30;48;2;14;15;19m▄[38;2;49;54;64;48;2;43;47;56m▄[38;2;49;54;65;48;2;49;55;65m▄[38;2;50;55;66;48;2;50;55;66m▄▄[38;2;51;56;67;48;2;50;55;67m▄[48;2;51;56;67m▄▄[38;2;51;57;68m▄[48;2;51;57;68m▄▄[38;2;52;57;68m▄[48;2;52;57;68m▄[38;2;27;30;38;48;2;27;30;36m▄[38;2;22;24;31;48;2;21;24;31m▄[38;2;45;50;60;48;2;44;49;60m▄[48;2;45;50;60m▄▄[48;2;45;50;61m▄[48;2;46;50;61m▄[38;2;46;51;61;48;2;45;50;60m▄[38;2;38;73;101m▄[38;2;28;94;140m▄[38;2;46;53;66m▄[38;2;46;50;61;48;2;39;42;52m▄[38;2;12;13;18;48;2;4;4;8m▄[38;2;0;0;2;48;2;0;0;2m▄[38;2;0;0;1m▄[38;2;2;127;199;48;2;0;128;199m▄[38;2;0;9;20;48;2;0;6;16m▄[38;2;1;82;138;48;2;0;77;131m▄[38;2;0;167;253;48;2;0;156;253m▄[38;2;0;193;253;48;2;0;168;253m▄[38;2;0;194;253;48;2;0;169;253m▄[38;2;0;167;253;48;2;0;157;253m▄[38;2;1;81;137;48;2;1;78;133m▄[38;2;0;7;16;48;2;0;4;12m▄[38;2;0;119;191;48;2;0;120;191m▄[38;2;0;0;2;48;2;0;0;3m▄[48;2;0;0;2m▄▄[48;2;0;0;3m▄[48;2;0;0;4m▄[48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
27
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[48;2;11;12;16m▄[38;2;29;30;36;48;2;76;80;92m▄[38;2;81;86;98;48;2;81;86;97m▄[48;2;81;87;98m▄[38;2;29;31;36;48;2;7;7;10m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄[38;2;44;49;59;48;2;33;37;44m▄[38;2;49;55;65;48;2;49;55;65m▄[38;2;50;55;65;48;2;50;55;65m▄[38;2;50;55;66;48;2;50;55;66m▄[38;2;51;56;66m▄[38;2;51;56;67;48;2;51;56;67m▄[48;2;51;57;68m▄▄[38;2;51;57;68m▄[38;2;51;56;67m▄[38;2;52;57;68;48;2;52;57;68m▄[38;2;53;58;69;48;2;52;57;69m▄[38;2;39;43;51;48;2;52;57;68m▄[38;2;2;2;5;48;2;25;28;34m▄[38;2;1;1;4;48;2;21;23;29m▄[38;2;31;35;43;48;2;45;49;60m▄[38;2;44;49;60;48;2;44;50;60m▄[38;2;45;50;60;48;2;45;50;60m▄[38;2;45;50;61;48;2;45;50;61m▄[38;2;45;50;60m▄[38;2;45;50;61;48;2;46;51;62m▄[38;2;23;101;153;48;2;14;130;203m▄[38;2;16;125;200;48;2;23;104;158m▄[38;2;39;65;89;48;2;13;130;206m▄[38;2;43;50;64;48;2;19;123;189m▄[38;2;12;17;27;48;2;7;113;178m▄[38;2;0;3;11;48;2;1;107;173m▄[38;2;0;3;10;48;2;2;108;173m▄[38;2;1;127;200;48;2;0;140;222m▄[38;2;0;4;12;48;2;0;9;21m▄[38;2;0;74;127;48;2;0;80;135m▄[38;2;0;155;252;48;2;0;166;253m▄[38;2;0;165;253;48;2;0;190;253m▄[38;2;0;165;252;48;2;0;191;253m▄[38;2;0;156;253;48;2;0;165;253m▄[38;2;1;77;131;48;2;1;82;140m▄[38;2;0;4;11;48;2;0;7;17m▄[38;2;2;135;212;48;2;0;120;191m▄[38;2;0;105;170;48;2;0;0;2m▄[38;2;1;103;171m▄[38;2;1;107;171m▄[38;2;1;116;185;48;2;0;47;75m▄[38;2;1;106;174;48;2;0;50;82m▄[38;2;0;16;28;48;2;0;0;2m▄[38;2;0;0;2m▄▄▄▄▄▄▄▄▄▄[0m
|
|
28
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[38;2;3;3;6;48;2;50;53;61m▄[38;2;68;72;83;48;2;81;86;98m▄[38;2;76;80;91;48;2;53;56;64m▄[38;2;0;0;3;48;2;0;0;2m▄[38;2;0;0;2m▄[38;2;17;19;24;48;2;6;7;10m▄[38;2;49;54;64;48;2;49;54;65m▄[38;2;49;54;65m▄[48;2;50;55;65m▄[38;2;50;55;66;48;2;50;55;66m▄▄[38;2;51;56;67;48;2;51;56;67m▄▄▄[38;2;51;57;67m▄[38;2;52;57;68;48;2;51;57;68m▄[38;2;37;41;50;48;2;52;57;68m▄[38;2;1;2;4;48;2;38;42;50m▄[38;2;0;0;2;48;2;1;2;4m▄[38;2;14;16;23;48;2;0;0;2m▄[38;2;15;18;24m▄[38;2;0;0;2;48;2;1;1;3m▄[38;2;0;0;3;48;2;30;33;41m▄[38;2;28;32;39;48;2;45;50;61m▄[38;2;45;50;61m▄[38;2;46;50;61m▄[38;2;46;51;61m▄[38;2;46;51;62m▄[48;2;46;51;61m▄[48;2;45;50;61m▄[38;2;45;50;61m▄[38;2;8;9;13;48;2;11;13;17m▄[38;2;0;0;2;48;2;0;0;2m▄▄[38;2;0;129;203;48;2;0;127;199m▄[38;2;0;7;13;48;2;0;1;5m▄[38;2;0;1;5;48;2;0;29;54m▄[38;2;0;4;11;48;2;0;86;146m▄[38;2;0;5;14;48;2;0;88;149m▄[48;2;0;89;150m▄[38;2;0;4;11;48;2;0;85;146m▄[38;2;0;1;5;48;2;0;32;58m▄[38;2;0;7;13;48;2;0;1;6m▄[38;2;1;127;198;48;2;2;124;194m▄[38;2;0;0;2;48;2;0;13;25m▄▄[48;2;0;15;27m▄[48;2;1;107;172m▄[48;2;1;106;176m▄[48;2;0;3;9m▄[48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄[0m
|
|
29
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[48;2;14;15;19m▄[38;2;34;36;42;48;2;79;84;96m▄[38;2;43;46;53;48;2;18;19;23m▄[38;2;0;0;2;48;2;0;0;2m▄[38;2;1;1;3;48;2;19;21;26m▄[38;2;42;47;57;48;2;49;54;65m▄[38;2;50;55;66;48;2;49;55;65m▄[48;2;50;55;66m▄▄▄[48;2;50;56;66m▄[38;2;51;56;67;48;2;51;56;67m▄[38;2;51;57;68m▄[38;2;45;50;60;48;2;52;57;68m▄[38;2;3;3;6;48;2;38;42;50m▄[38;2;0;0;3;48;2;1;1;4m▄[38;2;21;24;32;48;2;0;1;3m▄[38;2;29;33;42;48;2;18;21;29m▄[38;2;29;33;43;48;2;29;34;43m▄[38;2;30;34;44;48;2;30;34;43m▄[38;2;30;35;44;48;2;21;25;32m▄[38;2;23;26;34;48;2;1;1;4m▄[38;2;1;1;4;48;2;0;0;2m▄[38;2;0;0;2;48;2;26;29;36m▄[38;2;28;32;40;48;2;46;51;61m▄[38;2;46;51;61;48;2;46;51;62m▄[38;2;46;51;62m▄[38;2;47;52;63;48;2;46;52;62m▄[38;2;25;28;35;48;2;47;52;63m▄[38;2;0;0;2;48;2;19;22;27m▄[48;2;0;0;2m▄[38;2;4;70;109m▄[38;2;0;89;143;48;2;2;68;110m▄[38;2;0;0;4;48;2;1;121;193m▄[38;2;0;24;40;48;2;2;129;211m▄[38;2;0;27;45;48;2;0;108;179m▄[38;2;0;70;111;48;2;0;111;180m▄[38;2;0;74;116;48;2;0;110;180m▄[38;2;0;27;44;48;2;0;111;180m▄[38;2;0;26;42m▄[38;2;1;114;184m▄[38;2;0;23;40;48;2;0;128;207m▄[38;2;0;0;2;48;2;1;78;125m▄[48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
30
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[38;2;5;5;8;48;2;41;43;50m▄[38;2;0;0;3;48;2;0;0;2m▄[38;2;0;0;2m▄[48;2;15;17;22m▄[38;2;38;41;50;48;2;50;55;66m▄[38;2;50;55;66m▄[38;2;51;56;67m▄[48;2;51;56;66m▄[38;2;50;56;67;48;2;51;56;67m▄[38;2;51;56;67m▄[38;2;18;20;25;48;2;50;55;65m▄[38;2;0;0;2;48;2;9;10;14m▄[38;2;14;16;22;48;2;0;0;2m▄[38;2;29;33;42;48;2;17;20;27m▄[38;2;28;32;42;48;2;29;32;42m▄[38;2;29;33;42;48;2;29;33;42m▄[38;2;29;33;43;48;2;29;33;43m▄[48;2;30;34;44m▄[38;2;30;34;44m▄[38;2;30;35;44m▄[38;2;30;34;44;48;2;22;25;33m▄[38;2;20;24;31;48;2;0;0;3m▄[38;2;0;0;2m▄[38;2;1;1;4;48;2;32;35;44m▄[38;2;18;21;26;48;2;46;51;62m▄[38;2;0;1;3;48;2;29;33;40m▄[38;2;0;0;2;48;2;0;0;2m▄▄[38;2;1;49;79;48;2;1;38;61m▄[38;2;2;58;94;48;2;1;96;155m▄[38;2;0;0;2;48;2;0;0;3m▄[48;2;0;0;2m▄▄▄[38;2;0;75;117;48;2;0;54;85m▄[38;2;1;54;83;48;2;0;55;87m▄[38;2;0;0;2;48;2;0;0;2m▄▄[38;2;1;107;172;48;2;0;106;171m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
31
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[48;2;10;11;15m▄[38;2;32;35;43;48;2;50;55;66m▄[38;2;50;55;66;48;2;51;56;66m▄[38;2;50;56;67;48;2;51;55;67m▄[38;2;36;40;48;48;2;50;55;67m▄[38;2;0;0;2;48;2;27;30;37m▄[38;2;7;8;12;48;2;0;0;2m▄[38;2;28;32;41;48;2;10;12;17m▄[38;2;28;32;42;48;2;28;32;42m▄[38;2;29;33;42;48;2;29;32;42m▄[38;2;29;33;43;48;2;29;33;42m▄[38;2;29;39;52;48;2;29;33;43m▄[38;2;10;124;199;48;2;30;35;45m▄[38;2;8;122;200m▄[38;2;24;63;91;48;2;30;34;43m▄[38;2;25;62;89m▄[38;2;25;63;89;48;2;30;35;44m▄[38;2;26;63;89;48;2;31;36;45m▄[38;2;26;64;90;48;2;18;21;28m▄[38;2;2;38;59;48;2;0;0;3m▄[38;2;0;35;56m▄[48;2;0;0;2m▄[38;2;0;35;57m▄[38;2;1;108;174;48;2;0;7;13m▄[38;2;1;40;67;48;2;2;112;179m▄[38;2;0;0;2;48;2;0;29;48m▄[48;2;0;0;2m▄▄[38;2;1;52;82m▄[38;2;1;108;168;48;2;0;56;87m▄[38;2;0;3;7;48;2;2;103;163m▄[38;2;0;0;2;48;2;0;2;5m▄[38;2;0;30;47;48;2;0;0;2m▄[38;2;1;118;185;48;2;1;30;48m▄[38;2;0;13;23;48;2;2;109;174m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
32
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[48;2;5;6;9m▄[38;2;14;15;20;48;2;49;54;64m▄[38;2;7;7;11;48;2;44;48;58m▄[38;2;2;3;6;48;2;3;3;6m▄[38;2;25;29;37;48;2;5;5;9m▄[38;2;28;32;42;48;2;27;30;40m▄[38;2;28;32;41;48;2;28;32;41m▄[38;2;28;32;42;48;2;28;32;42m▄[38;2;29;32;42;48;2;29;33;43m▄[38;2;29;33;43m▄[48;2;28;42;58m▄[38;2;25;53;77;48;2;10;123;198m▄[38;2;25;54;78;48;2;9;121;196m▄[38;2;29;33;42;48;2;16;94;147m▄[38;2;29;33;43;48;2;15;92;142m▄[38;2;30;35;44;48;2;16;94;143m▄[38;2;22;25;33;48;2;17;95;144m▄[38;2;0;0;3;48;2;4;80;127m▄[38;2;0;0;2;48;2;0;77;123m▄[48;2;1;77;123m▄[48;2;1;77;124m▄[48;2;0;76;123m▄[48;2;0;37;62m▄[48;2;0;0;2m▄▄[38;2;0;41;64m▄[38;2;1;113;178;48;2;1;45;72m▄[38;2;0;6;12;48;2;1;111;176m▄[38;2;0;0;2;48;2;0;4;9m▄[48;2;0;0;2m▄[38;2;0;17;28;48;2;0;10;17m▄[38;2;2;86;138;48;2;2;117;185m▄[38;2;0;0;2;48;2;0;12;22m▄[48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
33
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[48;2;2;3;6m▄[38;2;0;0;3;48;2;22;26;34m▄[38;2;8;9;14;48;2;29;33;42m▄[38;2;9;10;15;48;2;28;32;42m▄[38;2;8;10;14;48;2;28;32;41m▄[38;2;9;10;15;48;2;29;32;42m▄[48;2;29;33;43m▄▄[48;2;29;33;42m▄▄▄[38;2;9;10;14;48;2;29;33;43m▄[38;2;6;7;11;48;2;29;32;42m▄[38;2;0;0;2;48;2;4;4;8m▄[48;2;0;0;2m▄▄▄▄▄▄▄[38;2;1;44;73;48;2;0;38;60m▄[38;2;0;9;17;48;2;1;114;182m▄[38;2;0;0;2;48;2;0;7;15m▄[48;2;0;0;2m▄▄▄[38;2;0;3;8;48;2;0;18;29m▄[38;2;0;3;7;48;2;2;76;121m▄[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
34
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[38;2;0;0;3m▄[38;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
35
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
36
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
37
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
38
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
39
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
40
|
-
[38;2;0;0;2;48;2;0;0;2m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄[0m
|
|
1
|
+
[?25l[0m [0m
|
|
2
|
+
[0m
|
|
3
|
+
[0m
|
|
4
|
+
[38;2;40;45;51m▄[38;2;62;69;79m▄[38;2;59;66;77m▄[38;2;8;16;28;48;2;43;46;51m▄[0m[38;2;61;68;77m▄[38;2;86;93;103m▄[38;2;92;99;109m▄[38;2;66;73;83m▄[38;2;3;48;79m▄[38;2;36;44;54m▄[38;2;8;16;28;48;2;43;46;51m▄[0m[38;2;62;69;79m▄▄[38;2;40;45;51m▄[0m [0m
|
|
5
|
+
[38;2;57;64;74;48;2;52;59;68m▄[38;2;67;74;85;48;2;61;69;80m▄[38;2;33;40;51;48;2;70;77;88m▄[38;2;34;42;53;48;2;12;20;32m▄[38;2;92;99;110;48;2;42;49;61m▄[48;2;91;98;108m▄[38;2;86;92;102;48;2;86;92;103m▄[38;2;60;67;78;48;2;77;84;95m▄[38;2;63;69;80;48;2;60;67;77m▄[38;2;73;80;91;48;2;3;60;96m▄[38;2;10;68;104;48;2;3;22;37m▄[38;2;3;52;82;48;2;3;58;90m▄[38;2;3;23;39;48;2;12;21;32m▄[38;2;33;41;51;48;2;69;77;87m▄[38;2;65;74;84;48;2;61;69;80m▄[38;2;56;64;74;48;2;52;59;67m▄[0m [0m
|
|
6
|
+
[7m[38;2;35;40;47m▄[0m[38;2;30;37;47;48;2;62;70;80m▄[38;2;42;49;60;48;2;6;14;26m▄[38;2;92;99;110;48;2;81;88;98m▄[38;2;78;86;96;48;2;92;99;110m▄[38;2;58;65;76;48;2;84;91;101m▄[38;2;85;92;102;48;2;59;67;77m▄[38;2;28;36;47;48;2;65;73;83m▄[48;2;68;74;85m▄[38;2;82;89;100;48;2;58;65;76m▄[38;2;24;45;62;48;2;34;58;78m▄[38;2;3;67;104;48;2;3;42;67m▄[38;2;3;61;93;48;2;3;45;72m▄[38;2;3;33;55;48;2;4;12;24m▄[38;2;32;39;49;48;2;63;71;81m▄[0m[7m[38;2;35;40;47m▄[0m [0m
|
|
7
|
+
[38;2;58;65;76;48;2;58;66;76m▄[38;2;53;60;71;48;2;30;38;49m▄[38;2;3;57;93;48;2;2;74;118m▄[38;2;42;71;93;48;2;3;21;37m▄[38;2;56;64;74;48;2;43;50;61m▄[38;2;61;68;79;48;2;74;80;90m▄[38;2;63;69;80;48;2;73;80;90m▄[38;2;59;66;76;48;2;41;48;59m▄[38;2;39;70;92;48;2;3;21;37m▄[38;2;2;59;95;48;2;2;64;104m▄[38;2;3;57;89;48;2;3;56;85m▄[38;2;2;45;74;48;2;3;45;73m▄[0m [0m
|
|
8
|
+
[38;2;32;37;44;48;2;59;66;77m▄[38;2;62;68;79;48;2;78;85;95m▄[38;2;30;38;49;48;2;29;37;48m▄[38;2;59;66;77;48;2;59;67;77m▄[38;2;59;67;78;48;2;48;55;66m▄[38;2;53;61;72;48;2;47;54;65m▄[38;2;53;60;72;48;2;49;55;66m▄[38;2;53;79;102;48;2;46;54;65m▄[38;2;38;86;124;48;2;54;61;72m▄[38;2;3;74;118;48;2;6;60;94m▄[38;2;0;148;246;48;2;4;83;120m▄[38;2;3;90;148;48;2;3;83;129m▄[0m [0m
|
|
9
|
+
[7m[38;2;45;51;60m▄[0m[38;2;11;18;28;48;2;33;40;52m▄[38;2;54;62;73;48;2;59;67;78m▄[38;2;36;43;55;48;2;54;62;73m▄[38;2;53;73;93;48;2;34;42;53m▄[38;2;49;87;122;48;2;33;40;52m▄[38;2;16;57;86;48;2;49;57;69m▄[38;2;3;66;102;48;2;28;42;55m▄[38;2;3;35;56;48;2;3;76;118m▄[38;2;2;62;98;48;2;4;91;135m▄[0m[7m[38;2;3;80;123m▄[0m [0m
|
|
10
|
+
[7m[38;2;9;13;19m▄[38;2;34;40;49m▄[38;2;40;50;63m▄[38;2;35;45;59m▄[38;2;4;11;21m▄[38;2;2;10;19m▄[0m [0m
|
|
11
|
+
[38;2;2;7;13m▄[7m[38;2;2;6;13m▄▄[0m[38;2;2;6;12m▄[0m [38;2;3;8;17m▄[38;2;3;7;14m▄[0m [0m
|
|
12
|
+
[7m[38;2;3;8;16m▄[0m [7m[38;2;2;6;12m▄[0m [38;2;2;6;12m▄[48;2;2;6;12m▄[0m[7m[38;2;2;6;12m▄[0m [0m
|
|
13
|
+
[7m[38;2;2;7;13m▄[0m [0m
|
|
14
|
+
[0m
|
|
15
|
+
[0m
|
|
41
16
|
[?25h
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
[?25l[0m [0m
|
|
2
|
+
[0m
|
|
3
|
+
[38;2;54;62;72;48;2;59;67;77m▄[38;2;54;61;72;48;2;38;46;57m▄[38;2;89;96;107;48;2;69;76;87m▄[38;2;69;75;86;48;2;83;89;100m▄[38;2;69;76;86;48;2;40;68;89m▄[38;2;23;62;86;48;2;3;44;71m▄[38;2;3;42;67;48;2;34;44;56m▄[38;2;54;62;72;48;2;59;66;76m▄[0m [0m
|
|
4
|
+
[38;2;73;80;90;48;2;64;78;92m▄[38;2;39;62;81;48;2;28;60;82m▄[38;2;57;63;74;48;2;61;68;78m▄[38;2;58;64;75;48;2;60;67;77m▄[38;2;34;66;90;48;2;9;53;81m▄[38;2;3;75;116;48;2;2;66;101m▄[0m [0m
|
|
5
|
+
[7m[38;2;44;49;57m▄[0m[38;2;27;33;41;48;2;51;59;70m▄[38;2;48;60;76m▄[38;2;33;65;94;48;2;49;59;73m▄[38;2;3;49;77;48;2;24;80;118m▄[38;2;1;48;78;48;2;3;107;171m▄[0m [0m
|
|
6
|
+
[38;2;2;7;14m▄[38;2;2;7;13m▄[0m [0m
|
|
7
|
+
[7m[38;2;2;6;13m▄[0m [0m
|
|
8
|
+
[0m
|
|
9
|
+
[?25h
|
package/bin/run.js
CHANGED
|
@@ -1,2 +1,34 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
2
|
+
// 2026-05-27 — silence the noisy `node:sqlite` ExperimentalWarning.
|
|
3
|
+
// Node 22.x prints a multi-line warning the first time any consumer
|
|
4
|
+
// imports `node:sqlite` (see core/repl/store/session-store.ts). CEO has
|
|
5
|
+
// pinged this surface twice now ("(node:XXXXX) ExperimentalWarning:
|
|
6
|
+
// SQLite is an experimental feature and might change at any time" +
|
|
7
|
+
// trace-warnings hint). Hiding it cleanly requires a tap on
|
|
8
|
+
// process.emitWarning BEFORE any module loads the sqlite binding —
|
|
9
|
+
// hence wiring it here in the binary entry, not deep inside the CLI.
|
|
10
|
+
//
|
|
11
|
+
// We allowlist only the exact sqlite warning + leave every other
|
|
12
|
+
// runtime warning (deprecation, security, custom code paths) intact.
|
|
13
|
+
// Operator can still re-enable the noise by exporting
|
|
14
|
+
// PUGI_SHOW_EXPERIMENTAL_WARNINGS=1 — useful when debugging a node
|
|
15
|
+
// version bump that might surface a new experimental flag we should
|
|
16
|
+
// notice.
|
|
17
|
+
if (!process.env.PUGI_SHOW_EXPERIMENTAL_WARNINGS) {
|
|
18
|
+
const originalEmit = process.emit;
|
|
19
|
+
process.emit = function patchedEmit(name, ...args) {
|
|
20
|
+
if (name === 'warning') {
|
|
21
|
+
const w = args[0];
|
|
22
|
+
const isSqliteExperimental =
|
|
23
|
+
w &&
|
|
24
|
+
typeof w === 'object' &&
|
|
25
|
+
w.name === 'ExperimentalWarning' &&
|
|
26
|
+
typeof w.message === 'string' &&
|
|
27
|
+
/SQLite is an experimental feature/i.test(w.message);
|
|
28
|
+
if (isSqliteExperimental) return false;
|
|
29
|
+
}
|
|
30
|
+
return originalEmit.call(this, name, ...args);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
import('../dist/index.js');
|
package/dist/commands/deploy.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `pugi deploy` command surface —
|
|
2
|
+
* `pugi deploy` command surface — P2 (Task #34).
|
|
3
3
|
*
|
|
4
4
|
* Subcommands:
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* pugi deploy --target vercel <vercelProject> [--project <id>] [--ref <ref>] [--target-env production|preview] [--integration <id>]
|
|
6
|
+
* pugi deploy --target render <renderService> [--project <id>] [--ref <ref>]
|
|
7
|
+
* pugi deploy --status <deployment-id>
|
|
8
|
+
* pugi deploy --logs <deployment-id> [--tail]
|
|
9
9
|
*
|
|
10
10
|
* Exit codes (per task spec):
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* 0 success (trigger queued, status terminal=ready, logs printed)
|
|
12
|
+
* 1 deployment failed (status=error or trigger refused)
|
|
13
|
+
* 2 transient (rate-limited, runtime down, retry-safe)
|
|
14
14
|
*
|
|
15
15
|
* Project resolution:
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
16
|
+
* `--project <id>` is required for trigger commands because the CLI's
|
|
17
|
+
* credential store is tenant-scoped but not project-scoped. A future
|
|
18
|
+
* sprint auto-detects the project from `.pugi/settings.json`
|
|
19
|
+
* bound to the workspace; until then the operator passes it explicitly.
|
|
20
20
|
*
|
|
21
|
-
* Local-first invariant
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
21
|
+
* Local-first invariant :
|
|
22
|
+
* `pugi deploy` does NOT read repository files. The Vercel deploy
|
|
23
|
+
* resolves source from the existing ProjectGitBinding row on the
|
|
24
|
+
* admin-api side — the CLI is only a request initiator + status poller.
|
|
25
25
|
*/
|
|
26
26
|
import { fetchDeployStatus, fetchDeployLogs, submitDeployTrigger, } from '@pugi/sdk';
|
|
27
27
|
/**
|
|
@@ -143,26 +143,26 @@ export function parseDeployArgs(args) {
|
|
|
143
143
|
export function usage() {
|
|
144
144
|
return [
|
|
145
145
|
'Usage:',
|
|
146
|
-
'
|
|
147
|
-
'
|
|
148
|
-
'
|
|
149
|
-
'
|
|
146
|
+
' pugi deploy --target vercel <vercelProject> --project <id> [--target-env production|preview] [--ref <git-ref>] [--integration <id>]',
|
|
147
|
+
' pugi deploy --target render <renderService> --project <id> [--ref <git-ref>]',
|
|
148
|
+
' pugi deploy --status <deployment-id>',
|
|
149
|
+
' pugi deploy --logs <deployment-id> [--tail]',
|
|
150
150
|
'',
|
|
151
151
|
'Flags:',
|
|
152
|
-
'
|
|
153
|
-
'
|
|
154
|
-
'
|
|
155
|
-
'
|
|
156
|
-
'
|
|
157
|
-
'
|
|
158
|
-
'
|
|
159
|
-
'
|
|
160
|
-
'
|
|
152
|
+
' --target vercel|render Provider to deploy to.',
|
|
153
|
+
' --project <id> Pugi project id (required for trigger).',
|
|
154
|
+
' --ref <git-ref> Optional Git ref. Defaults to the binding default branch.',
|
|
155
|
+
' --target-env production|preview',
|
|
156
|
+
' Vercel deploy environment. Defaults to production.',
|
|
157
|
+
' --integration <id> Disambiguate when multiple integrations are active.',
|
|
158
|
+
' --status <id> Show the current status for a deployment.',
|
|
159
|
+
' --logs <id> [--tail] Fetch log tail. With --tail, polls until terminal.',
|
|
160
|
+
' --json Emit machine-readable JSON envelopes.',
|
|
161
161
|
'',
|
|
162
162
|
'Exit codes:',
|
|
163
|
-
'
|
|
164
|
-
'
|
|
165
|
-
'
|
|
163
|
+
' 0 success',
|
|
164
|
+
' 1 deployment failed / refused',
|
|
165
|
+
' 2 transient (rate-limited, runtime down, retry-safe)',
|
|
166
166
|
].join('\n');
|
|
167
167
|
}
|
|
168
168
|
/**
|
|
@@ -418,16 +418,16 @@ function statusToExitCode(status) {
|
|
|
418
418
|
function renderStatusTable(response, context) {
|
|
419
419
|
const lines = [];
|
|
420
420
|
lines.push(context === 'queued' ? 'Deployment queued.' : 'Deployment status:');
|
|
421
|
-
lines.push(`
|
|
422
|
-
lines.push(`
|
|
423
|
-
lines.push(`
|
|
424
|
-
lines.push(`
|
|
421
|
+
lines.push(` id: ${response.id}`);
|
|
422
|
+
lines.push(` provider: ${response.provider}`);
|
|
423
|
+
lines.push(` project: ${response.projectId}`);
|
|
424
|
+
lines.push(` status: ${response.status}`);
|
|
425
425
|
if (response.url)
|
|
426
|
-
lines.push(`
|
|
426
|
+
lines.push(` url: ${response.url}`);
|
|
427
427
|
if (response.providerDeploymentId)
|
|
428
|
-
lines.push(`
|
|
429
|
-
lines.push(`
|
|
430
|
-
lines.push(`
|
|
428
|
+
lines.push(` providerDeploymentId: ${response.providerDeploymentId}`);
|
|
429
|
+
lines.push(` createdAt: ${response.createdAt}`);
|
|
430
|
+
lines.push(` updatedAt: ${response.updatedAt}`);
|
|
431
431
|
if (response.error) {
|
|
432
432
|
lines.push('');
|
|
433
433
|
lines.push('--- build error tail ---');
|