ashlr-plugin 1.36.4
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/.agents/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +39 -0
- package/.claude-plugin/plugin.json +36 -0
- package/.codex/agents/README.md +9 -0
- package/.codex/agents/ashlr-explorer.md +36 -0
- package/.codex/agents/ashlr-worker.md +38 -0
- package/.codex-plugin/plugin.json +45 -0
- package/.mcp.json +14 -0
- package/LICENSE +21 -0
- package/README.md +311 -0
- package/agents/ashlr-code.md +69 -0
- package/agents/ashlr-explore.md +44 -0
- package/agents/ashlr-plan.md +54 -0
- package/bench/fixtures/notebook-large.ipynb +660 -0
- package/bench/fixtures/notebook-small.ipynb +39 -0
- package/bench/fixtures/tasklist-closed.json +62 -0
- package/bench/fixtures/tasklist-large-mixed.json +27 -0
- package/bench/fixtures/tasklist-sprint-open.json +79 -0
- package/bench/fixtures/websearch-bun-runtime.json +32 -0
- package/bench/fixtures/websearch-react-hooks-patterns.json +32 -0
- package/bench/fixtures/websearch-typescript-generics.json +38 -0
- package/bench/refs/node-sdk/.refrev +1 -0
- package/bench/refs/node-sdk/README.md +17 -0
- package/bench/refs/node-sdk/src/agent/agent.ts +163 -0
- package/bench/refs/node-sdk/src/agent/create-agent-ui-stream.ts +83 -0
- package/bench/refs/node-sdk/src/agent/tool-loop-agent.ts +238 -0
- package/bench/refs/node-sdk/src/embed/embed-many.ts +409 -0
- package/bench/refs/node-sdk/src/embed/embed-result.ts +50 -0
- package/bench/refs/node-sdk/src/embed/embed.ts +257 -0
- package/bench/refs/node-sdk/src/error/invalid-argument-error.ts +34 -0
- package/bench/refs/node-sdk/src/error/invalid-tool-input-error.ts +33 -0
- package/bench/refs/node-sdk/src/error/no-object-generated-error.ts +70 -0
- package/bench/refs/node-sdk/src/generate-image/generate-image-result.ts +42 -0
- package/bench/refs/node-sdk/src/generate-image/generate-image.ts +362 -0
- package/bench/refs/node-sdk/src/generate-object/generate-object-result.ts +67 -0
- package/bench/refs/node-sdk/src/generate-object/generate-object.ts +501 -0
- package/bench/refs/node-sdk/src/generate-object/inject-json-instruction.ts +30 -0
- package/bench/refs/node-sdk/src/generate-object/output-strategy.ts +415 -0
- package/bench/refs/node-sdk/src/generate-object/repair-text.ts +12 -0
- package/bench/refs/node-sdk/src/generate-object/stream-object.ts +960 -0
- package/bench/refs/node-sdk/src/generate-speech/generate-speech.ts +191 -0
- package/bench/refs/node-sdk/src/generate-text/generate-text.ts +1484 -0
- package/bench/refs/node-sdk/src/generate-text/stream-text.ts +2708 -0
- package/bench/refs/node-sdk/src/generate-text/tool-call.ts +59 -0
- package/bench/refs/node-sdk/src/generate-text/tool-result.ts +36 -0
- package/bench/refs/node-sdk/src/telemetry/create-telemetry-dispatcher.ts +146 -0
- package/bench/refs/node-sdk/src/telemetry/telemetry-registry.ts +15 -0
- package/bench/refs/node-sdk/src/telemetry/telemetry.ts +223 -0
- package/bench/refs/node-sdk/src/util/async-iterable-stream.ts +94 -0
- package/bench/refs/node-sdk/src/util/consume-stream.ts +31 -0
- package/bench/refs/node-sdk/src/util/create-stitchable-stream.ts +112 -0
- package/bench/refs/node-sdk/src/util/download/download.ts +74 -0
- package/bench/refs/node-sdk/src/util/error-handler.ts +1 -0
- package/bench/refs/node-sdk/src/util/fix-json.ts +401 -0
- package/bench/refs/node-sdk/src/util/merge-objects.ts +79 -0
- package/bench/refs/python-lib/.refrev +1 -0
- package/bench/refs/python-lib/README.md +18 -0
- package/bench/refs/python-lib/pandas/core/_numba/executor.py +249 -0
- package/bench/refs/python-lib/pandas/core/_numba/extensions.py +586 -0
- package/bench/refs/python-lib/pandas/core/_numba/kernels/mean_.py +198 -0
- package/bench/refs/python-lib/pandas/core/_numba/kernels/min_max_.py +178 -0
- package/bench/refs/python-lib/pandas/core/_numba/kernels/sum_.py +255 -0
- package/bench/refs/python-lib/pandas/core/_numba/kernels/var_.py +251 -0
- package/bench/refs/python-lib/pandas/core/accessor.py +520 -0
- package/bench/refs/python-lib/pandas/core/api.py +138 -0
- package/bench/refs/python-lib/pandas/core/array_algos/masked_accumulations.py +97 -0
- package/bench/refs/python-lib/pandas/core/array_algos/masked_reductions.py +252 -0
- package/bench/refs/python-lib/pandas/core/array_algos/putmask.py +150 -0
- package/bench/refs/python-lib/pandas/core/array_algos/quantile.py +232 -0
- package/bench/refs/python-lib/pandas/core/array_algos/replace.py +159 -0
- package/bench/refs/python-lib/pandas/core/array_algos/take.py +609 -0
- package/bench/refs/python-lib/pandas/core/arraylike.py +534 -0
- package/bench/refs/python-lib/pandas/core/arrays/_arrow_string_mixins.py +434 -0
- package/bench/refs/python-lib/pandas/core/arrays/_mixins.py +630 -0
- package/bench/refs/python-lib/pandas/core/arrays/_ranges.py +276 -0
- package/bench/refs/python-lib/pandas/core/arrays/_utils.py +77 -0
- package/bench/refs/python-lib/pandas/core/arrays/arrow/accessors.py +521 -0
- package/bench/refs/python-lib/pandas/core/arrays/arrow/extension_types.py +174 -0
- package/bench/refs/python-lib/pandas/core/arrays/boolean.py +454 -0
- package/bench/refs/python-lib/pandas/core/arrays/floating.py +192 -0
- package/bench/refs/python-lib/pandas/core/arrays/integer.py +296 -0
- package/bench/refs/python-lib/pandas/core/arrays/masked.py +2140 -0
- package/bench/refs/python-lib/pandas/core/arrays/numeric.py +305 -0
- package/bench/refs/python-lib/pandas/core/arrays/numpy_.py +701 -0
- package/bench/refs/python-lib/pandas/core/arrays/period.py +1586 -0
- package/bench/refs/python-lib/pandas/core/arrays/sparse/accessor.py +505 -0
- package/bench/refs/python-lib/pandas/core/arrays/sparse/scipy_sparse.py +208 -0
- package/bench/refs/rust-project/.refrev +1 -0
- package/bench/refs/rust-project/README.md +17 -0
- package/bench/refs/rust-project/tokio/src/doc/os.rs +68 -0
- package/bench/refs/rust-project/tokio/src/fs/dir_builder.rs +129 -0
- package/bench/refs/rust-project/tokio/src/fs/file.rs +1113 -0
- package/bench/refs/rust-project/tokio/src/fs/mocks.rs +176 -0
- package/bench/refs/rust-project/tokio/src/fs/mod.rs +324 -0
- package/bench/refs/rust-project/tokio/src/fs/open_options.rs +856 -0
- package/bench/refs/rust-project/tokio/src/fs/read.rs +80 -0
- package/bench/refs/rust-project/tokio/src/fs/read_dir.rs +357 -0
- package/bench/refs/rust-project/tokio/src/fs/write.rs +99 -0
- package/bench/refs/rust-project/tokio/src/future/maybe_done.rs +123 -0
- package/bench/refs/rust-project/tokio/src/future/try_join.rs +82 -0
- package/bench/refs/rust-project/tokio/src/io/async_buf_read.rs +117 -0
- package/bench/refs/rust-project/tokio/src/io/async_read.rs +133 -0
- package/bench/refs/rust-project/tokio/src/io/async_seek.rs +96 -0
- package/bench/refs/rust-project/tokio/src/io/async_write.rs +402 -0
- package/bench/refs/rust-project/tokio/src/io/blocking.rs +339 -0
- package/bench/refs/rust-project/tokio/src/io/interest.rs +345 -0
- package/bench/refs/rust-project/tokio/src/io/join.rs +130 -0
- package/bench/refs/rust-project/tokio/src/io/mod.rs +308 -0
- package/bench/refs/rust-project/tokio/src/io/poll_evented.rs +319 -0
- package/bench/refs/rust-project/tokio/src/io/read_buf.rs +344 -0
- package/bench/refs/rust-project/tokio/src/io/ready.rs +322 -0
- package/bench/refs/rust-project/tokio/src/io/split.rs +166 -0
- package/bench/refs/rust-project/tokio/src/io/stderr.rs +148 -0
- package/bench/refs/rust-project/tokio/src/io/stdin.rs +98 -0
- package/bench/refs/rust-project/tokio/src/io/stdio_common.rs +222 -0
- package/bench/refs/rust-project/tokio/src/io/stdout.rs +197 -0
- package/bench/refs/rust-project/tokio/src/io/util/buf_reader.rs +311 -0
- package/bench/refs/rust-project/tokio/src/io/util/buf_stream.rs +207 -0
- package/bench/refs/rust-project/tokio/src/io/util/buf_writer.rs +310 -0
- package/bench/refs/rust-project/tokio/src/io/util/chain.rs +144 -0
- package/commands/_spawn-patterns.json +32 -0
- package/commands/ashlr-allow.md +21 -0
- package/commands/ashlr-benchmark.md +53 -0
- package/commands/ashlr-brief.md +97 -0
- package/commands/ashlr-budget.md +76 -0
- package/commands/ashlr-compact.md +54 -0
- package/commands/ashlr-dashboard.md +37 -0
- package/commands/ashlr-doctor.md +56 -0
- package/commands/ashlr-eco-mode.md +92 -0
- package/commands/ashlr-genome-init.md +24 -0
- package/commands/ashlr-genome-keygen.md +36 -0
- package/commands/ashlr-genome-loop.md +118 -0
- package/commands/ashlr-genome-push.md +36 -0
- package/commands/ashlr-genome-rewrap.md +48 -0
- package/commands/ashlr-genome-team-init.md +67 -0
- package/commands/ashlr-handoff.md +23 -0
- package/commands/ashlr-help.md +86 -0
- package/commands/ashlr-hook-timings.md +30 -0
- package/commands/ashlr-leaderboard.md +50 -0
- package/commands/ashlr-ollama-setup.md +39 -0
- package/commands/ashlr-orchestrate-status.md +72 -0
- package/commands/ashlr-orchestrate.md +83 -0
- package/commands/ashlr-parallelize.md +63 -0
- package/commands/ashlr-report-crash.md +33 -0
- package/commands/ashlr-resume.md +72 -0
- package/commands/ashlr-savings.md +24 -0
- package/commands/ashlr-settings.md +50 -0
- package/commands/ashlr-spawn.md +61 -0
- package/commands/ashlr-start.md +60 -0
- package/commands/ashlr-status.md +64 -0
- package/commands/ashlr-team-invite.md +47 -0
- package/commands/ashlr-tier.md +122 -0
- package/commands/ashlr-tour.md +60 -0
- package/commands/ashlr-update.md +155 -0
- package/commands/ashlr-upgrade.md +96 -0
- package/commands/goal.md +58 -0
- package/commands/loop.md +40 -0
- package/docs/CNAME +1 -0
- package/docs/PRO_TIER.md +104 -0
- package/docs/README.md +21 -0
- package/docs/architecture.md +415 -0
- package/docs/ashlr-pipe.md +161 -0
- package/docs/assets/logo.svg +19 -0
- package/docs/assets/og.png +0 -0
- package/docs/assets/og.svg +41 -0
- package/docs/benchmarks-v2.json +355 -0
- package/docs/benchmarks.json +102 -0
- package/docs/benchmarks.md +211 -0
- package/docs/billing.md +185 -0
- package/docs/cloud-genome.md +155 -0
- package/docs/competitive-wozcode.md +92 -0
- package/docs/deploy.md +325 -0
- package/docs/email-templates.md +113 -0
- package/docs/embed-tuning.md +103 -0
- package/docs/genome.md +120 -0
- package/docs/github-oauth-onboarding.md +127 -0
- package/docs/hero-video-script.md +129 -0
- package/docs/index.html +2262 -0
- package/docs/install-prompt.md +78 -0
- package/docs/install-windows.md +132 -0
- package/docs/install.ps1 +171 -0
- package/docs/install.sh +146 -0
- package/docs/launch/README.md +114 -0
- package/docs/launch/hn.md +49 -0
- package/docs/launch/reddit.md +45 -0
- package/docs/launch/x.md +65 -0
- package/docs/launch-post.md +112 -0
- package/docs/legal.md +78 -0
- package/docs/llm-providers.md +99 -0
- package/docs/multi-host-mcp.md +217 -0
- package/docs/multi-turn-architecture.md +108 -0
- package/docs/operations/deployment.md +108 -0
- package/docs/operations/error-monitoring.md +70 -0
- package/docs/operations/weekly-digest.md +70 -0
- package/docs/operations.md +494 -0
- package/docs/platform-support.md +133 -0
- package/docs/policy-packs.md +188 -0
- package/docs/press-kit/fact-sheet.md +78 -0
- package/docs/press-kit/founder-bio.md +3 -0
- package/docs/press-kit/logo.svg +33 -0
- package/docs/press-kit/screenshots.md +146 -0
- package/docs/pricing.md +251 -0
- package/docs/pro-backend-architecture.md +523 -0
- package/docs/producthunt.md +52 -0
- package/docs/router-migration.md +110 -0
- package/docs/session-log-schema.md +68 -0
- package/docs/social.md +95 -0
- package/docs/team-genome.md +528 -0
- package/docs/telemetry.md +194 -0
- package/docs/test-isolation.md +100 -0
- package/docs/upgrade.md +159 -0
- package/hooks/_hook-errors.ts +87 -0
- package/hooks/_hook-perf-emit.ts +113 -0
- package/hooks/_hook-timing-ledger.ts +1133 -0
- package/hooks/_nudge-throttle.ts +127 -0
- package/hooks/_recent-blocks.ts +127 -0
- package/hooks/audit-upload.ts +86 -0
- package/hooks/codex-hooks.json +171 -0
- package/hooks/commit-attribution.ts +179 -0
- package/hooks/edit-batching-nudge.ts +154 -0
- package/hooks/genome-scribe-hook.ts +219 -0
- package/hooks/hooks.json +294 -0
- package/hooks/orient-nudge-hook.ts +242 -0
- package/hooks/policy-enforce.ts +214 -0
- package/hooks/post-tool-use-embedding.ts +93 -0
- package/hooks/post-tool-use-genome.sh +37 -0
- package/hooks/post-tool-use-genome.ts +69 -0
- package/hooks/posttooluse-correlate.ts +122 -0
- package/hooks/posttooluse-dedupe-output.ts +241 -0
- package/hooks/posttooluse-genome-refresh.ts +223 -0
- package/hooks/posttooluse-native-nudge.ts +205 -0
- package/hooks/posttooluse-stale-result.ts +277 -0
- package/hooks/pretooluse-bash.ts +63 -0
- package/hooks/pretooluse-budget-guard.ts +318 -0
- package/hooks/pretooluse-common.ts +985 -0
- package/hooks/pretooluse-eco-router.ts +196 -0
- package/hooks/pretooluse-edit.sh +93 -0
- package/hooks/pretooluse-edit.ts +197 -0
- package/hooks/pretooluse-glob.ts +70 -0
- package/hooks/pretooluse-grep.sh +85 -0
- package/hooks/pretooluse-grep.ts +96 -0
- package/hooks/pretooluse-notebookedit.ts +121 -0
- package/hooks/pretooluse-read.sh +118 -0
- package/hooks/pretooluse-read.ts +118 -0
- package/hooks/pretooluse-task.ts +130 -0
- package/hooks/pretooluse-webfetch.ts +66 -0
- package/hooks/pretooluse-websearch.ts +85 -0
- package/hooks/pretooluse-write.ts +128 -0
- package/hooks/pulse-emit.ts +197 -0
- package/hooks/session-end-consolidate.sh +35 -0
- package/hooks/session-end-consolidate.ts +188 -0
- package/hooks/session-end-stats-gc.ts +80 -0
- package/hooks/session-log-append.sh +94 -0
- package/hooks/session-log-append.ts +116 -0
- package/hooks/session-start.ts +993 -0
- package/hooks/sessionend-hook-health-nudge.ts +451 -0
- package/hooks/sessionend-savings-nudge.ts +318 -0
- package/hooks/sessionend-status-line-nudge.ts +296 -0
- package/hooks/sessionstart-brief.ts +140 -0
- package/hooks/sessionstart-cost-refactor.ts +95 -0
- package/hooks/sessionstart-efficient.ts +110 -0
- package/hooks/sessionstart-genome-author.ts +93 -0
- package/hooks/sessionstart-lean-tools.ts +98 -0
- package/hooks/sessionstart-search.ts +97 -0
- package/hooks/stop-accounting.ts +152 -0
- package/hooks/subagent-stop-rollup.ts +162 -0
- package/hooks/userpromptsubmit-brief-trigger.ts +156 -0
- package/package.json +56 -0
- package/ports/README.md +108 -0
- package/ports/cursor/mcp.json +11 -0
- package/ports/goose/recipe.yaml +26 -0
- package/scripts/ashlr-mcp.ts +40 -0
- package/scripts/auto-update.ts +177 -0
- package/scripts/baseline-scan.ts +831 -0
- package/scripts/bench-orchestrate.ts +377 -0
- package/scripts/benchmark-refs.ts +292 -0
- package/scripts/bootstrap.mjs +100 -0
- package/scripts/brief-eval.ts +234 -0
- package/scripts/bump-version.ts +82 -0
- package/scripts/bun-resolve.d.mts +11 -0
- package/scripts/bun-resolve.mjs +59 -0
- package/scripts/calibrate-grep.ts +467 -0
- package/scripts/capture-grep-workload.ts +260 -0
- package/scripts/check-tier.ts +61 -0
- package/scripts/check-version-sync.ts +97 -0
- package/scripts/cli-orchestrate-status.ts +386 -0
- package/scripts/cli-orchestrate.ts +303 -0
- package/scripts/cli.ts +478 -0
- package/scripts/cloud-smoke-test.ts +313 -0
- package/scripts/coach-report.ts +373 -0
- package/scripts/context-db-migrate.ts +137 -0
- package/scripts/context-status.ts +43 -0
- package/scripts/demo-run.ts +255 -0
- package/scripts/deploy-smoke.sh +140 -0
- package/scripts/doctor.ts +992 -0
- package/scripts/embed-file-worker.ts +104 -0
- package/scripts/embed-tune.ts +308 -0
- package/scripts/errors-report.ts +428 -0
- package/scripts/find-test-leak.ts +69 -0
- package/scripts/generate-badge.ts +357 -0
- package/scripts/genome-auto-consolidate.ts +533 -0
- package/scripts/genome-auto-propose.ts +578 -0
- package/scripts/genome-cloud-pull.ts +363 -0
- package/scripts/genome-cloud-push.ts +382 -0
- package/scripts/genome-cloud-sync.ts +587 -0
- package/scripts/genome-commit-watcher.ts +295 -0
- package/scripts/genome-init.ts +986 -0
- package/scripts/genome-key.ts +233 -0
- package/scripts/genome-keygen.ts +168 -0
- package/scripts/genome-link.ts +59 -0
- package/scripts/genome-refresh-worker.ts +364 -0
- package/scripts/genome-rewrap.ts +90 -0
- package/scripts/genome-synthesizer.ts +679 -0
- package/scripts/genome-team-init.ts +312 -0
- package/scripts/handoff-pack.ts +438 -0
- package/scripts/hook-bootstrap.mjs +75 -0
- package/scripts/hook-timing-reader.ts +371 -0
- package/scripts/hook-timings-report.ts +554 -0
- package/scripts/install-genome-hooks.ts +196 -0
- package/scripts/install-onnx-model.ts +154 -0
- package/scripts/install-permissions.ts +276 -0
- package/scripts/install-status-line.ts +150 -0
- package/scripts/mcp-entrypoint.sh +78 -0
- package/scripts/mcp-entrypoint.ts +130 -0
- package/scripts/mdx-angle-bracket-lint.ts +152 -0
- package/scripts/measure-cold-start.ts +126 -0
- package/scripts/migrate-stats-to-sqlite.ts +86 -0
- package/scripts/ollama-setup.ts +498 -0
- package/scripts/onboarding-wizard.ts +1691 -0
- package/scripts/orchestrate-emit-telemetry.ts +177 -0
- package/scripts/orchestrate-expand.ts +517 -0
- package/scripts/orchestrate-run.ts +744 -0
- package/scripts/print-legend.ts +50 -0
- package/scripts/product-metadata.ts +38 -0
- package/scripts/prune-old-memories.ts +208 -0
- package/scripts/publish.sh +88 -0
- package/scripts/read-calibration.ts +122 -0
- package/scripts/report-crash.ts +226 -0
- package/scripts/run-benchmark.ts +750 -0
- package/scripts/run-root-tests.ts +28 -0
- package/scripts/savings-dashboard.ts +1258 -0
- package/scripts/savings-report-extras.ts +447 -0
- package/scripts/savings-status-line.ts +873 -0
- package/scripts/session-event-emit.ts +266 -0
- package/scripts/session-greet.ts +686 -0
- package/scripts/session-log-report.ts +551 -0
- package/scripts/session-resume.ts +614 -0
- package/scripts/set-hook-mode.ts +83 -0
- package/scripts/smoke-cross-platform.ts +117 -0
- package/scripts/smoke-realtime.ts +257 -0
- package/scripts/smoke-tools.ts +21 -0
- package/scripts/stats-cloud-pull.ts +213 -0
- package/scripts/stats-cloud-sync.ts +261 -0
- package/scripts/telemetry-flush.ts +160 -0
- package/scripts/telemetry-status.ts +266 -0
- package/scripts/timing-budget.ts +35 -0
- package/scripts/ui-animation.ts +120 -0
- package/scripts/ui.ts +431 -0
- package/scripts/upgrade-flow.ts +775 -0
- package/scripts/weekly-digest.ts +394 -0
- package/servers/_accounting.ts +78 -0
- package/servers/_ask-router.ts +84 -0
- package/servers/_ast-chunker.ts +434 -0
- package/servers/_ast-helpers.ts +183 -0
- package/servers/_ast-languages.ts +153 -0
- package/servers/_ast-refactor/_shared.ts +221 -0
- package/servers/_ast-refactor/cross-file-rename.ts +560 -0
- package/servers/_ast-refactor/extract-function.ts +357 -0
- package/servers/_ast-refactor/file-local-rename.ts +172 -0
- package/servers/_ast-refactor.ts +41 -0
- package/servers/_ast-skeleton.ts +107 -0
- package/servers/_bash-summarizers-registry.ts +1096 -0
- package/servers/_crash-dump.ts +210 -0
- package/servers/_cwd-clamp.ts +342 -0
- package/servers/_edit-log.ts +28 -0
- package/servers/_edit-match.ts +236 -0
- package/servers/_edit-validate.ts +196 -0
- package/servers/_embed-calibration.ts +123 -0
- package/servers/_embedding-cache.ts +401 -0
- package/servers/_embedding-model.ts +329 -0
- package/servers/_events.ts +113 -0
- package/servers/_genome-cache.ts +154 -0
- package/servers/_genome-commits.ts +172 -0
- package/servers/_genome-crypto-v2.ts +242 -0
- package/servers/_genome-crypto.ts +259 -0
- package/servers/_genome-discoveries.ts +140 -0
- package/servers/_genome-embed-populator.ts +216 -0
- package/servers/_genome-freshness.ts +134 -0
- package/servers/_genome-issues.ts +171 -0
- package/servers/_genome-live.ts +263 -0
- package/servers/_genome-prs.ts +188 -0
- package/servers/_genome-search.ts +479 -0
- package/servers/_genome-sync.ts +297 -0
- package/servers/_history-tracker.ts +279 -0
- package/servers/_http-helpers.ts +151 -0
- package/servers/_identity-hash.ts +151 -0
- package/servers/_llm-providers/anthropic.ts +132 -0
- package/servers/_llm-providers/cloud.ts +195 -0
- package/servers/_llm-providers/index.ts +350 -0
- package/servers/_llm-providers/local.ts +127 -0
- package/servers/_llm-providers/onnx.ts +393 -0
- package/servers/_llm-providers/types.ts +27 -0
- package/servers/_manifest-v2.ts +447 -0
- package/servers/_mcp-host.ts +93 -0
- package/servers/_nudge-events.ts +451 -0
- package/servers/_orchestrate-executor.ts +316 -0
- package/servers/_prefetch.ts +435 -0
- package/servers/_pricing.ts +256 -0
- package/servers/_pro.ts +381 -0
- package/servers/_read-cache.ts +44 -0
- package/servers/_router-handlers.ts +46 -0
- package/servers/_router.ts +55 -0
- package/servers/_run-with-timeout.ts +173 -0
- package/servers/_savings-render.ts +214 -0
- package/servers/_stats-sqlite.ts +640 -0
- package/servers/_stats.ts +1183 -0
- package/servers/_status-line-cells.ts +469 -0
- package/servers/_streaks.ts +162 -0
- package/servers/_summarize.ts +208 -0
- package/servers/_task-graph-render.ts +217 -0
- package/servers/_task-graph.ts +545 -0
- package/servers/_telemetry.ts +719 -0
- package/servers/_test-parsers.ts +530 -0
- package/servers/_test-watch.ts +626 -0
- package/servers/_text-helpers.ts +37 -0
- package/servers/_token-measure.ts +160 -0
- package/servers/_tool-base.ts +248 -0
- package/servers/_weekly-digest.ts +391 -0
- package/servers/ask-server-handlers.ts +49 -0
- package/servers/ask-server.ts +174 -0
- package/servers/bash-server-handlers.ts +138 -0
- package/servers/bash-server.ts +1136 -0
- package/servers/bench.ts +186 -0
- package/servers/diff-semantic-server-handlers.ts +39 -0
- package/servers/diff-semantic-server.ts +566 -0
- package/servers/diff-server-handlers.ts +317 -0
- package/servers/diff-server.ts +20 -0
- package/servers/edit-server-handlers.ts +31 -0
- package/servers/edit-server.ts +209 -0
- package/servers/edit-structural-server-handlers.ts +322 -0
- package/servers/efficiency-server-handlers.ts +161 -0
- package/servers/efficiency-server.ts +1135 -0
- package/servers/flush-server-handlers.ts +21 -0
- package/servers/flush-server.ts +19 -0
- package/servers/genome-server-handlers.ts +118 -0
- package/servers/genome-server.ts +397 -0
- package/servers/github-server-handlers.ts +187 -0
- package/servers/github-server.ts +856 -0
- package/servers/glob-server-handlers.ts +233 -0
- package/servers/glob-server.ts +20 -0
- package/servers/grep-server-handlers.ts +61 -0
- package/servers/grep-server.ts +564 -0
- package/servers/http-server-handlers.ts +36 -0
- package/servers/http-server.ts +149 -0
- package/servers/logs-server-handlers.ts +42 -0
- package/servers/logs-server.ts +359 -0
- package/servers/ls-server-handlers.ts +166 -0
- package/servers/ls-server.ts +20 -0
- package/servers/multi-edit-server-handlers.ts +51 -0
- package/servers/multi-edit-server.ts +422 -0
- package/servers/notebook-edit-server-handlers.ts +34 -0
- package/servers/notebook-edit-server.ts +181 -0
- package/servers/orient-server-handlers.ts +52 -0
- package/servers/orient-server.ts +436 -0
- package/servers/pipe-server-handlers.ts +68 -0
- package/servers/pipe-server.ts +300 -0
- package/servers/read-server-handlers.ts +42 -0
- package/servers/read-server.ts +206 -0
- package/servers/rename-file-server-handlers.ts +67 -0
- package/servers/rename-file-server.ts +699 -0
- package/servers/savings-server-handlers.ts +27 -0
- package/servers/savings-server.ts +54 -0
- package/servers/search-replace-regex-server-handlers.ts +96 -0
- package/servers/search-replace-regex-server.ts +751 -0
- package/servers/sql-server-handlers.ts +58 -0
- package/servers/sql-server.ts +505 -0
- package/servers/task-server-handlers.ts +358 -0
- package/servers/task-server.ts +24 -0
- package/servers/test-server-handlers.ts +351 -0
- package/servers/test-server.ts +20 -0
- package/servers/tree-server-handlers.ts +503 -0
- package/servers/tree-server.ts +20 -0
- package/servers/webfetch-server-handlers.ts +166 -0
- package/servers/webfetch-server.ts +20 -0
- package/servers/websearch-server-handlers.ts +215 -0
- package/servers/websearch-server.ts +19 -0
- package/servers/write-server-handlers.ts +27 -0
- package/servers/write-server.ts +97 -0
- package/skills/ashlr-brief/SKILL.md +80 -0
- package/skills/ashlr-codex-doctor/SKILL.md +21 -0
- package/skills/ashlr-codex-efficient-tools/SKILL.md +17 -0
- package/skills/ashlr-codex-genome-refresh/SKILL.md +20 -0
- package/skills/ashlr-codex-parallel-explore/SKILL.md +20 -0
- package/skills/ashlr-codex-savings/SKILL.md +17 -0
- package/skills/ashlr-cost-refactor/SKILL.md +50 -0
- package/skills/ashlr-efficient/SKILL.md +64 -0
- package/skills/ashlr-genome-author/SKILL.md +43 -0
- package/skills/ashlr-lean-tools/SKILL.md +43 -0
- package/skills/ashlr-search/SKILL.md +46 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Helper functions to generate range-like data for DatetimeArray
|
|
3
|
+
(and possibly TimedeltaArray/PeriodArray)
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from typing import TYPE_CHECKING
|
|
9
|
+
|
|
10
|
+
import numpy as np
|
|
11
|
+
|
|
12
|
+
from pandas._libs.lib import i8max
|
|
13
|
+
from pandas._libs.tslibs import (
|
|
14
|
+
BaseOffset,
|
|
15
|
+
Day,
|
|
16
|
+
OutOfBoundsDatetime,
|
|
17
|
+
Timedelta,
|
|
18
|
+
Timestamp,
|
|
19
|
+
iNaT,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
from pandas.core.construction import range_to_ndarray
|
|
23
|
+
|
|
24
|
+
if TYPE_CHECKING:
|
|
25
|
+
from pandas._typing import (
|
|
26
|
+
TimeUnit,
|
|
27
|
+
npt,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def generate_regular_range(
|
|
32
|
+
start: Timestamp | Timedelta | None,
|
|
33
|
+
end: Timestamp | Timedelta | None,
|
|
34
|
+
periods: int | None,
|
|
35
|
+
freq: BaseOffset,
|
|
36
|
+
unit: TimeUnit = "ns",
|
|
37
|
+
) -> npt.NDArray[np.intp]:
|
|
38
|
+
"""
|
|
39
|
+
Generate a range of dates or timestamps with the spans between dates
|
|
40
|
+
described by the given `freq` DateOffset.
|
|
41
|
+
|
|
42
|
+
Parameters
|
|
43
|
+
----------
|
|
44
|
+
start : Timedelta, Timestamp or None
|
|
45
|
+
First point of produced date range.
|
|
46
|
+
end : Timedelta, Timestamp or None
|
|
47
|
+
Last point of produced date range.
|
|
48
|
+
periods : int or None
|
|
49
|
+
Number of periods in produced date range.
|
|
50
|
+
freq : Tick
|
|
51
|
+
Describes space between dates in produced date range.
|
|
52
|
+
unit : {'s', 'ms', 'us', 'ns'}, default "ns"
|
|
53
|
+
The resolution the output is meant to represent.
|
|
54
|
+
|
|
55
|
+
Returns
|
|
56
|
+
-------
|
|
57
|
+
ndarray[np.int64]
|
|
58
|
+
Representing the given resolution.
|
|
59
|
+
"""
|
|
60
|
+
istart = start._value if start is not None else None
|
|
61
|
+
iend = end._value if end is not None else None
|
|
62
|
+
if isinstance(freq, Day):
|
|
63
|
+
# In contexts without a timezone, a Day offset is unambiguously
|
|
64
|
+
# interpretable as Timedelta-like.
|
|
65
|
+
td = Timedelta(days=freq.n)
|
|
66
|
+
else:
|
|
67
|
+
freq.nanos # raises if non-fixed frequency
|
|
68
|
+
td = Timedelta(freq)
|
|
69
|
+
b: int
|
|
70
|
+
e: int
|
|
71
|
+
try:
|
|
72
|
+
td = td.as_unit(unit, round_ok=False)
|
|
73
|
+
except ValueError as err:
|
|
74
|
+
raise ValueError(
|
|
75
|
+
f"freq={freq} is incompatible with unit={unit}. "
|
|
76
|
+
"Use a lower freq or a higher unit instead."
|
|
77
|
+
) from err
|
|
78
|
+
stride = int(td._value)
|
|
79
|
+
|
|
80
|
+
if periods is None and istart is not None and iend is not None:
|
|
81
|
+
b = istart
|
|
82
|
+
# cannot just use e = Timestamp(end) + 1 because arange breaks when
|
|
83
|
+
# stride is too large, see GH10887
|
|
84
|
+
e = b + (iend - b) // stride * stride + stride // 2 + 1
|
|
85
|
+
elif istart is not None and periods is not None:
|
|
86
|
+
b = istart
|
|
87
|
+
e = _generate_range_overflow_safe(b, periods, stride, side="start")
|
|
88
|
+
elif iend is not None and periods is not None:
|
|
89
|
+
e = iend + stride
|
|
90
|
+
b = _generate_range_overflow_safe(e, periods, stride, side="end")
|
|
91
|
+
else:
|
|
92
|
+
raise ValueError(
|
|
93
|
+
"at least 'start' or 'end' should be specified if a 'period' is given."
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
return range_to_ndarray(range(b, e, stride))
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def generate_daily_offset_range(
|
|
100
|
+
start: Timestamp | None,
|
|
101
|
+
end: Timestamp | None,
|
|
102
|
+
periods: int | None,
|
|
103
|
+
freq: BaseOffset,
|
|
104
|
+
unit: TimeUnit = "ns",
|
|
105
|
+
) -> npt.NDArray[np.int64]:
|
|
106
|
+
"""
|
|
107
|
+
Generate a range for offsets whose on-offset dates are a subset of a
|
|
108
|
+
daily grid, by generating a daily range and filtering.
|
|
109
|
+
|
|
110
|
+
This is a performance optimization (GH#16463) for offsets like BusinessDay
|
|
111
|
+
that implement ``_get_daily_offset_mask``. Instead of iteratively applying
|
|
112
|
+
the offset, we generate a daily range and filter it vectorized.
|
|
113
|
+
|
|
114
|
+
Parameters
|
|
115
|
+
----------
|
|
116
|
+
start : Timestamp or None
|
|
117
|
+
end : Timestamp or None
|
|
118
|
+
periods : int or None
|
|
119
|
+
freq : BaseOffset
|
|
120
|
+
Must have ``_supports_daily_offset_mask`` and ``n >= 1``
|
|
121
|
+
(caller ensures both).
|
|
122
|
+
unit : str, default "ns"
|
|
123
|
+
|
|
124
|
+
Returns
|
|
125
|
+
-------
|
|
126
|
+
ndarray[int64]
|
|
127
|
+
The filtered i8 values.
|
|
128
|
+
"""
|
|
129
|
+
abs_n = freq.n # caller ensures n >= 1
|
|
130
|
+
|
|
131
|
+
# For the periods case, convert to start+end by extending the known
|
|
132
|
+
# endpoint with a generous Timedelta. The worst-case gap for any
|
|
133
|
+
# daily-grid offset is 7 calendar days per on-offset day (e.g. Week),
|
|
134
|
+
# so needed * 7 + 6 is always sufficient.
|
|
135
|
+
trim_to = None
|
|
136
|
+
trim_from_end = False
|
|
137
|
+
if periods is not None:
|
|
138
|
+
needed_on_offset = (periods - 1) * abs_n + 1
|
|
139
|
+
buffer_days = needed_on_offset * 7 + 6
|
|
140
|
+
if end is None:
|
|
141
|
+
# start is guaranteed non-None by the caller
|
|
142
|
+
end = ( # type: ignore[assignment]
|
|
143
|
+
start + Timedelta(days=buffer_days) # type: ignore[operator]
|
|
144
|
+
).as_unit(unit)
|
|
145
|
+
else:
|
|
146
|
+
trim_from_end = True
|
|
147
|
+
start = (end - Timedelta(days=buffer_days)).as_unit(unit) # pyright: ignore[reportAssignmentType]
|
|
148
|
+
trim_to = periods
|
|
149
|
+
|
|
150
|
+
i8values = generate_regular_range(start, end, None, Day(), unit=unit)
|
|
151
|
+
dt64 = i8values.view(f"datetime64[{unit}]")
|
|
152
|
+
i8values = i8values[freq._get_daily_offset_mask(dt64)] # type: ignore[attr-defined]
|
|
153
|
+
|
|
154
|
+
if abs_n > 1:
|
|
155
|
+
i8values = i8values[::abs_n]
|
|
156
|
+
|
|
157
|
+
if trim_to is not None:
|
|
158
|
+
if trim_from_end:
|
|
159
|
+
i8values = i8values[-trim_to:]
|
|
160
|
+
else:
|
|
161
|
+
i8values = i8values[:trim_to]
|
|
162
|
+
|
|
163
|
+
return i8values
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def _generate_range_overflow_safe(
|
|
167
|
+
endpoint: int, periods: int, stride: int, side: str = "start"
|
|
168
|
+
) -> int:
|
|
169
|
+
"""
|
|
170
|
+
Calculate the second endpoint for passing to np.arange, checking
|
|
171
|
+
to avoid an integer overflow. Catch OverflowError and re-raise
|
|
172
|
+
as OutOfBoundsDatetime.
|
|
173
|
+
|
|
174
|
+
Parameters
|
|
175
|
+
----------
|
|
176
|
+
endpoint : int
|
|
177
|
+
nanosecond timestamp of the known endpoint of the desired range
|
|
178
|
+
periods : int
|
|
179
|
+
number of periods in the desired range
|
|
180
|
+
stride : int
|
|
181
|
+
nanoseconds between periods in the desired range
|
|
182
|
+
side : {'start', 'end'}
|
|
183
|
+
which end of the range `endpoint` refers to
|
|
184
|
+
|
|
185
|
+
Returns
|
|
186
|
+
-------
|
|
187
|
+
other_end : int
|
|
188
|
+
|
|
189
|
+
Raises
|
|
190
|
+
------
|
|
191
|
+
OutOfBoundsDatetime
|
|
192
|
+
"""
|
|
193
|
+
# GH#14187 raise instead of incorrectly wrapping around
|
|
194
|
+
assert side in ["start", "end"]
|
|
195
|
+
|
|
196
|
+
i64max = np.uint64(i8max)
|
|
197
|
+
msg = f"Cannot generate range with {side}={endpoint} and periods={periods}"
|
|
198
|
+
|
|
199
|
+
with np.errstate(over="raise"):
|
|
200
|
+
# if periods * strides cannot be multiplied within the *uint64* bounds,
|
|
201
|
+
# we cannot salvage the operation by recursing, so raise
|
|
202
|
+
try:
|
|
203
|
+
addend = np.uint64(periods) * np.uint64(np.abs(stride))
|
|
204
|
+
except FloatingPointError as err:
|
|
205
|
+
raise OutOfBoundsDatetime(msg) from err
|
|
206
|
+
|
|
207
|
+
if np.abs(addend) <= i64max:
|
|
208
|
+
# relatively easy case without casting concerns
|
|
209
|
+
return _generate_range_overflow_safe_signed(endpoint, periods, stride, side)
|
|
210
|
+
|
|
211
|
+
elif (endpoint > 0 and side == "start" and stride > 0) or (
|
|
212
|
+
endpoint < 0 < stride and side == "end"
|
|
213
|
+
):
|
|
214
|
+
# no chance of not-overflowing
|
|
215
|
+
raise OutOfBoundsDatetime(msg)
|
|
216
|
+
|
|
217
|
+
elif side == "end" and endpoint - stride <= i64max < endpoint:
|
|
218
|
+
# in _generate_regular_range we added `stride` thereby overflowing
|
|
219
|
+
# the bounds. Adjust to fix this.
|
|
220
|
+
return _generate_range_overflow_safe(
|
|
221
|
+
endpoint - stride, periods - 1, stride, side
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
# split into smaller pieces
|
|
225
|
+
mid_periods = periods // 2
|
|
226
|
+
remaining = periods - mid_periods
|
|
227
|
+
assert 0 < remaining < periods, (remaining, periods, endpoint, stride)
|
|
228
|
+
|
|
229
|
+
midpoint = int(_generate_range_overflow_safe(endpoint, mid_periods, stride, side))
|
|
230
|
+
return _generate_range_overflow_safe(midpoint, remaining, stride, side)
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
def _generate_range_overflow_safe_signed(
|
|
234
|
+
endpoint: int, periods: int, stride: int, side: str
|
|
235
|
+
) -> int:
|
|
236
|
+
"""
|
|
237
|
+
A special case for _generate_range_overflow_safe where `periods * stride`
|
|
238
|
+
can be calculated without overflowing int64 bounds.
|
|
239
|
+
"""
|
|
240
|
+
assert side in ["start", "end"]
|
|
241
|
+
if side == "end":
|
|
242
|
+
stride *= -1
|
|
243
|
+
|
|
244
|
+
with np.errstate(over="raise"):
|
|
245
|
+
addend = np.int64(periods) * np.int64(stride)
|
|
246
|
+
try:
|
|
247
|
+
# easy case with no overflows
|
|
248
|
+
result = np.int64(endpoint) + addend
|
|
249
|
+
if result == iNaT:
|
|
250
|
+
# Putting this into a DatetimeArray/TimedeltaArray
|
|
251
|
+
# would incorrectly be interpreted as NaT
|
|
252
|
+
raise OverflowError
|
|
253
|
+
return int(result)
|
|
254
|
+
except (FloatingPointError, OverflowError):
|
|
255
|
+
# with endpoint negative and addend positive we risk
|
|
256
|
+
# FloatingPointError; with reversed signed we risk OverflowError
|
|
257
|
+
pass
|
|
258
|
+
|
|
259
|
+
# if stride and endpoint had opposite signs, then endpoint + addend
|
|
260
|
+
# should never overflow. so they must have the same signs
|
|
261
|
+
assert (stride > 0 and endpoint >= 0) or (stride < 0 and endpoint <= 0)
|
|
262
|
+
|
|
263
|
+
if stride > 0:
|
|
264
|
+
# watch out for very special case in which we just slightly
|
|
265
|
+
# exceed implementation bounds, but when passing the result to
|
|
266
|
+
# np.arange will get a result slightly within the bounds
|
|
267
|
+
|
|
268
|
+
uresult = np.uint64(endpoint) + np.uint64(addend)
|
|
269
|
+
i64max = np.uint64(i8max)
|
|
270
|
+
assert uresult > i64max
|
|
271
|
+
if uresult <= i64max + np.uint64(stride):
|
|
272
|
+
return int(uresult)
|
|
273
|
+
|
|
274
|
+
raise OutOfBoundsDatetime(
|
|
275
|
+
f"Cannot generate range with {side}={endpoint} and periods={periods}"
|
|
276
|
+
)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import (
|
|
4
|
+
TYPE_CHECKING,
|
|
5
|
+
Any,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
import numpy as np
|
|
9
|
+
|
|
10
|
+
from pandas._config import is_nan_na
|
|
11
|
+
|
|
12
|
+
from pandas._libs import lib
|
|
13
|
+
from pandas._libs.missing import NA
|
|
14
|
+
from pandas.errors import LossySetitemError
|
|
15
|
+
|
|
16
|
+
from pandas.core.dtypes.cast import np_can_hold_element
|
|
17
|
+
from pandas.core.dtypes.common import is_numeric_dtype
|
|
18
|
+
|
|
19
|
+
if TYPE_CHECKING:
|
|
20
|
+
from pandas._typing import (
|
|
21
|
+
npt,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
from pandas.core.arrays.base import ExtensionArray
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def to_numpy_dtype_inference(
|
|
28
|
+
arr: ExtensionArray,
|
|
29
|
+
dtype: npt.DTypeLike | None,
|
|
30
|
+
na_value,
|
|
31
|
+
hasna: bool,
|
|
32
|
+
) -> tuple[np.dtype | None, Any]:
|
|
33
|
+
result_dtype: np.dtype | None
|
|
34
|
+
inferred_numeric_dtype = False
|
|
35
|
+
if dtype is None and is_numeric_dtype(arr.dtype):
|
|
36
|
+
inferred_numeric_dtype = True
|
|
37
|
+
if hasna:
|
|
38
|
+
if arr.dtype.kind == "b":
|
|
39
|
+
result_dtype = np.dtype(np.object_)
|
|
40
|
+
else:
|
|
41
|
+
if arr.dtype.kind in "iu":
|
|
42
|
+
result_dtype = np.dtype(np.float64)
|
|
43
|
+
else:
|
|
44
|
+
result_dtype = arr.dtype.numpy_dtype # type: ignore[attr-defined]
|
|
45
|
+
if na_value is lib.no_default:
|
|
46
|
+
if not is_nan_na():
|
|
47
|
+
na_value = NA
|
|
48
|
+
dtype = np.dtype(object)
|
|
49
|
+
else:
|
|
50
|
+
na_value = np.nan
|
|
51
|
+
else:
|
|
52
|
+
result_dtype = arr.dtype.numpy_dtype # type: ignore[attr-defined]
|
|
53
|
+
elif dtype is not None:
|
|
54
|
+
result_dtype = np.dtype(dtype)
|
|
55
|
+
else:
|
|
56
|
+
result_dtype = None
|
|
57
|
+
|
|
58
|
+
if na_value is lib.no_default:
|
|
59
|
+
if result_dtype is None or not hasna:
|
|
60
|
+
na_value = arr.dtype.na_value
|
|
61
|
+
elif result_dtype.kind == "f":
|
|
62
|
+
na_value = np.nan
|
|
63
|
+
elif result_dtype.kind == "M":
|
|
64
|
+
unit = np.datetime_data(result_dtype)[0] # type: ignore[arg-type]
|
|
65
|
+
na_value = np.datetime64("NaT", unit) # type: ignore[call-overload]
|
|
66
|
+
elif result_dtype.kind == "m":
|
|
67
|
+
unit = np.datetime_data(result_dtype)[0] # type: ignore[arg-type]
|
|
68
|
+
na_value = np.timedelta64("NaT", unit) # type: ignore[call-overload]
|
|
69
|
+
else:
|
|
70
|
+
na_value = arr.dtype.na_value
|
|
71
|
+
|
|
72
|
+
if inferred_numeric_dtype and hasna:
|
|
73
|
+
try:
|
|
74
|
+
np_can_hold_element(result_dtype, na_value) # type: ignore[arg-type]
|
|
75
|
+
except LossySetitemError:
|
|
76
|
+
result_dtype = np.dtype(np.object_)
|
|
77
|
+
return result_dtype, na_value
|